Função NdisOidRequest (ndis.h)
A função NdisOidRequest encaminha uma solicitação para os drivers subjacentes para consultar os recursos ou o status de um adaptador ou definir o estado de um adaptador.
Sintaxe
NDIS_STATUS NdisOidRequest(
[in] NDIS_HANDLE NdisBindingHandle,
[in] PNDIS_OID_REQUEST OidRequest
);
Parâmetros
[in] NdisBindingHandle
O identificador retornado pela função NdisOpenAdapterEx que identifica o adaptador de destino na associação.
[in] OidRequest
Um ponteiro para uma estrutura de NDIS_OID_REQUEST que especifica a operação solicitada com um determinado códigoXXX OID_ para consultar o status de um adaptador ou definir o estado de um adaptador.
Valor de retorno
O driver subjacente determina qual NDIS_STATUS_código xxxNdisOidRequest retorna, mas geralmente é um dos seguintes valores:
Código de retorno | Descrição |
---|---|
|
A operação de solicitação foi concluída com êxito. |
|
A solicitação está sendo tratada de forma assíncrona e o NDIS chamará o chamador função ProtocolOidRequestComplete quando a solicitação for concluída. |
|
O código deXXX OID_ especificado no Oid membro do buffer estruturado NDIS_OID_REQUESTem OidRequest é inválido ou sem suporte pelo driver subjacente. |
|
O valor especificado no InformationBufferLength membro do buffer estruturado em NDIS_OID_REQUEST em OidRequest não corresponde aos requisitos para o código deXXX OID_ fornecido. Se o buffer de informações for muito pequeno, o membro BytesNeeded contém o valor correto para InformationBufferLength no retorno de NdisOidRequest. |
|
Os dados fornecidos em do InformationBuffer na estrutura de NDIS_OID_REQUEST fornecida são inválidos para o código deXXX OID_ fornecido. |
|
O driver subjacente não dá suporte à operação solicitada. |
|
A solicitação não pôde ser atendida devido a uma escassez de recursos. Normalmente, esse valor retornado 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. |
|
O driver subjacente tentou a operação solicitada, geralmente um conjunto em uma NIC, mas falhou. Por exemplo, uma tentativa de definir muitos endereços multicast pode causar o retorno desse valor. |
|
O driver subjacente falhou na operação solicitada porque uma operação de fechamento está em andamento. |
|
O driver de miniporto subjacente não pode atender à solicitação no momento porque está redefinindo a NIC afetada no momento. A função ProtocolStatusEx 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. |
|
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. |
Observações
Um driver de protocolo deve alocar memória suficiente para manter o buffer de informações associado à OID especificada. O driver também deve alocar e configurar o buffer em OidRequest antes de chamar NdisOidRequest. Ambos os buffers devem ser alocados do pool nãopagado porque o driver subjacente é executado no IRQL gerado durante o processamento da solicitação.
NdisOidRequest encaminha uma solicitação para drivers subjacentes ou manipula a solicitação propriamente dita. Se o driver inferior seguinte for um driver intermediário do NDIS, ele poderá chamar NdisOidRequest com uma solicitação específica de OID própria antes de concluir a solicitação originalmente enviada pelo driver de nível superior.
Alguns erros retornados são recuperáveis, incluindo o seguinte:
Ou seja, um driver pode modificar o pacote em OidRequest adequadamente para corrigir o código deXXX OID_ ou o tamanho ou conteúdo do buffer em do InformationBuffer e reenviar o pacote de solicitação para NdisOidRequest. O mesmo pacote pode ser satisfeito na reenviação para NdisOidRequest 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 OIDs do NDIS.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Com suporte no NDIS 6.0 e posterior. |
da Plataforma de Destino | Área de trabalho |
cabeçalho | ndis.h (inclua Ndis.h) |
biblioteca | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
regras de conformidade de DDI | Irql_OID_Function(ndis) |