Função NdisDirectOidRequest (ndis.h)
A função NdisDirectOidRequest encaminha uma solicitação OID direta para os drivers subjacentes para consultar os recursos ou status de um adaptador ou definir o estado de um adaptador.
Sintaxe
NDIS_STATUS NdisDirectOidRequest(
[in] NDIS_HANDLE NdisBindingHandle,
[in] PNDIS_OID_REQUEST OidRequest
);
Parâmetros
[in] NdisBindingHandle
O identificador que a função NdisOpenAdapterEx retorna que identifica o adaptador de miniporto de destino na associação.
[in] OidRequest
Um ponteiro para uma estrutura NDIS_OID_REQUEST que especifica a operação solicitada com um determinado código OID_Xxx para consultar o status de um adaptador ou definir o estado de um adaptador.
Retornar valor
O driver subjacente determina qual código NDIS_STATUS_XXXretorna NdisDirectOidRequest , 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 ProtocolDirectOidRequestComplete quando a solicitação é concluída. |
|
O código OID_Xxx especificado no membro Oid do buffer estruturado NDIS_OID_REQUEST em OidRequest era inválido ou sem suporte pelo driver subjacente. |
|
O valor especificado no membro InformationBufferLength do buffer estruturado NDIS_OID_REQUEST em OidRequest não correspondeu aos requisitos do código OID_Xxx fornecido. Se o buffer de informações for muito pequeno, o membro BytesNeeded conterá o valor correto para InformationBufferLength no retorno de NdisDirectOidRequest. |
|
Os dados fornecidos no InformationBuffer na estrutura de NDIS_OID_REQUEST fornecida eram inválidos para o código OID_Xxx fornecido. |
|
O driver subjacente não dá suporte à operação solicitada. Para NdisDirectOidRequest, o NDIS também poderá retornar esse status se o driver de chamada não tiver registrado um Função ProtocolDirectOidRequestComplete . |
|
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 foi bem-sucedida, mas não indica necessariamente que a mesma solicitação, enviada posteriormente, falhará pelo mesmo motivo. |
|
O driver subjacente tentou a operação solicitada, normalmente 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 normalmente é um padrão não específico, retornado quando nenhum dos valores NDIS_STATUS_Xxx mais específicos fez com que o driver subjacente falhasse na solicitação. |
Comentários
A função NdisDirectOidRequest não pode ser usada para solicitações OID gerais. Para solicitações gerais de OID, use a função NdisOidRequest . NdisDirectOidRequest só pode ser usado para OIDs compatíveis com NDIS para uso com a interface OID direta. Por exemplo, os seguintes OIDs podem ser usados:
OID_TCP_TASK_IPSEC_OFFLOAD_V2_UPDATE_SA OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SAUm driver de protocolo deve alocar memória suficiente para manter o buffer de informações associado ao OID especificado. O driver também deve alocar e configurar o buffer no parâmetro OidRequest antes de chamar NdisDirectOidRequest. Ambos os buffers devem ser alocados do pool nãopagado porque o driver subjacente é executado no IRQL gerado durante o processamento da solicitação.
NdisDirectOidRequest encaminha uma solicitação para drivers subjacentes ou manipula a solicitação em si. Se o driver inferior seguinte for um driver intermediário do NDIS, o driver intermediário poderá chamar NdisDirectOidRequest com uma solicitação específica do OID antes de concluir a solicitação que o driver de nível superior enviou originalmente.
Um driver que chama NdisDirectOidRequest deve registrar o Função ProtocolDirectOidRequestComplete .
A interface de solicitação OID direta é semelhante à interface de solicitação OID geral. Para obter mais informações sobre como emitir solicitações gerais, consulte NdisOidRequest.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Com suporte no NDIS 6.1 e posterior. |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | ndis.h (inclua Ndis.h) |
Biblioteca | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |