Compartilhar via


Função NdisRequest (ndis.h)

Observação NDIS 5. x foi preterido e substituído pelo NDIS 6. x. Para obter um novo desenvolvimento de driver NDIS, consulte Drivers de Rede começando com o Windows Vista. Para obter informações sobre como portar o NDIS 5. x drivers para o NDIS 6. x, consulte portabilidade de drivers NDIS 5.x para NDIS 6.0.

NdisRequest encaminha uma solicitação para o driver subjacente para que ele consulte os recursos ou o status de sua NIC ou que ele defina o estado de sua NIC.

Sintaxe

void NdisRequest(
  [out] PNDIS_STATUS  Status,
  [in]  NDIS_HANDLE   NdisBindingHandle,
  [in]  PNDIS_REQUEST NdisRequest
);

Parâmetros

[out] Status

Ponteiro para uma variável fornecida pelo chamador que é definida no retorno dessa função. O driver subjacente determina qual NDIS_STATUS_ XXX é retornado, mas geralmente é um dos seguintes valores:

  • NDIS_STATUS_SUCCESS
    A operação solicitada foi concluída com êxito.

  • NDIS_STATUS_PENDING
    A solicitação está sendo tratada de forma assíncrona e a função ProtocolRequestComplete do chamador será chamada quando for concluída.

  • NDIS_STATUS_INVALID_OID
    O código deXXX OID_ especificado no Oid membro do buffer estruturado NDIS_REQUEST em NdisRequest é inválido ou sem suporte pelo driver subjacente.

  • NDIS_STATUS_INVALID_LENGTH ou NDIS_STATUS_BUFFER_TOO_SHORT
    O valor especificado no InformationBufferLength membro do buffer estruturado em NDIS_REQUEST em NdisRequest não corresponde aos requisitos para o código deXXX de OID_ fornecido. Se o buffer de informações for muito pequeno, o membro bytesNeeded conterá o valor correto para InformationBufferLength no retorno de NdisRequest.

  • NDIS_STATUS_INVALID_DATA
    Os dados fornecidos em do InformationBuffer na estrutura de NDIS_REQUEST fornecida são inválidos para o código deXXX OID_ fornecido.

  • NDIS_STATUS_NOT_SUPPORTED ou NDIS_STATUS_NOT_RECOGNIZED
    O driver subjacente não dá suporte à operação solicitada.

  • NDIS_STATUS_RESOURCES
    A solicitação não pôde ser atendida devido a uma escassez de recursos. Normalmente, esse retorno indica que uma tentativa de alocar memória não teve êxito, mas não indica necessariamente que a mesma solicitação, enviada posteriormente, falhará pelo mesmo motivo.

  • NDIS_STATUS_NOT_ACCEPTED
    O driver subjacente tentou a operação solicitada, geralmente um conjunto, em sua NIC, mas falhou com o netcard. Por exemplo, uma tentativa de definir muitos endereços multicast pode causar o retorno desse valor.

  • NDIS_STATUS_CLOSING ou NDIS_STATUS_CLOSING_INDICATING
    O driver subjacente falhou na operação solicitada porque um fechamento está em andamento.

  • NDIS_STATUS_RESET_IN_PROGRESS
    O driver NIC subjacente não pode atender à solicitação no momento porque ele está redefinindo o netcard no momento. A função ProtocolStatus do chamador foi ou será chamada com NDIS_STATUS_RESET_START para indicar que uma redefinição está em andamento. Esse valor retornado não indica necessariamente que a mesma solicitação, enviada posteriormente, falhará pelo mesmo motivo.

  • NDIS_STATUS_FAILURE
    Esse valor geralmente é um padrão não específico, retornado quando nenhum dos NDIS_STATUS_XXX mais específicos fez com que o driver subjacente falhasse na solicitação.

[in] NdisBindingHandle

Especifica o identificador retornado por NdisOpenAdapter que identifica a NIC de destino ou o adaptador virtual do driver inferior ao qual o chamador está associado.

[in] NdisRequest

Ponteiro para uma estrutura em buffer especificando a operação solicitada com uma determinada OID_ código XXX para uma consulta ou um conjunto.

Valor de retorno

Nenhum

Observações

Um driver de protocolo deve alocar memória suficiente para o buffer de informações associado ao OID_ XXX da operação que ele solicitará. O driver também deve alocar e configurar o buffer em NdisRequest antes de chamar NdisRequest. Ambos os buffers devem ser alocados do pool nãopagado porque o driver subjacente é executado no IRQL gerado durante o processamento da solicitação.

Para chamadores em camadas acima de um driver NDIS intermediário, NdisRequest encaminha uma solicitação para o driver inferior seguinte para que ele retorne informações sobre seus próprios recursos ou direcione esse driver para lidar com funcionalidades específicas de maneira determinada pelo chamador. Se o driver inferior seguinte for um driver intermediário do NDIS, ele poderá chamar NdisRequest com uma solicitação específica de OID própria antes de concluir a solicitação originalmente enviada pelo protocolo de nível superior.

Alguns erros retornados no Status são recuperáveis, incluindo o seguinte:

NDIS_STATUS_INVALID_OID

NDIS_STATUS_INVALID_LENGTH

NDIS_STATUS_BUFFER_TOO_SHORT

NDIS_STATUS_INVALID_DATA

NDIS_STATUS_RESOURCES

NDIS_STATUS_RESET_IN_PROGRESS

Ou seja, um driver pode modificar o pacote em NdisRequest adequadamente para corrigir o código deXXX OID_ e/ou o tamanho ou o conteúdo do buffer em do InformationBuffer e reenviar o pacote de solicitação para NdisRequest. O mesmo pacote poderá ser atendido na reenviação para NdisRequest se a chamada original indicasse uma redefinição em andamento ou se uma falta de recursos, que poderia ser temporária, impedisse que essa solicitação fosse realizada.

A biblioteca NDIS mantém associações para drivers de miniportos subjacentes. O NDIS pode retornar informações para consultas específicas de associação se uma determinada OID estiver associada a um tipo médio definido pelo sistema para o qual o sistema fornece uma biblioteca de filtros.

Para obter mais informações sobre os OIDs gerais e específicos da mídia e seus respectivos buffers de informações associados, consulte identificadores de objeto NDIS.

  • Plataforma de destino: Universal
  • Versão: Não há suporte para drivers NDIS 6.0 no Windows Vista. Use NdisOidRequest. Com suporte para drivers NDIS 5.1 no Windows Vista e no Windows XP.

Requisitos

Requisito Valor
cabeçalho ndis.h (inclua Ndis.h)
biblioteca Ndis.lib
IRQL IRQL <= DISPATCH_LEVEL

Consulte também