Função NdisSynchronousOidRequest (ndis.h)

Os drivers de protocolo chamam a função NdisSynchronousOidRequest para originar uma nova solicitação OID síncrona e emiti-la para drivers subjacentes.

Sintaxe

NDIS_STATUS NdisSynchronousOidRequest(
  [in] NDIS_HANDLE      NdisBindingHandle,
  [in] NDIS_OID_REQUEST *OidRequest
);

Parâmetros

[in] NdisBindingHandle

O identificador retornado pela função NdisOpenAdapterEx 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 . A estrutura pode especificar uma consulta OID, um conjunto ou uma solicitação de método.

Retornar valor

O driver subjacente determina qual NDIS_STATUS_codroXXX que NdisSynchronousOidRequest retorna, mas geralmente é um dos seguintes valores:

Código de retorno Descrição
NDIS_STATUS_SUCCESS
A operação de solicitação foi concluída com êxito.
NDIS_STATUS_INVALID_OID
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.
NDIS_STATUS_INVALID_LENGTH ou NDIS_STATUS_BUFFER_TOO_SHORT
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 NdisSynchronousOidRequest.
NDIS_STATUS_INVALID_DATA
Os dados fornecidos no InformationBuffer na estrutura de NDIS_OID_REQUEST fornecida eram inválidos para o código OID_Xxx 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 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.
NDIS_STATUS_NOT_ACCEPTED
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.
NDIS_STATUS_CLOSING ou NDIS_STATUS_CLOSING_INDICATING
O driver subjacente falhou na operação solicitada porque uma operação de fechamento está em andamento.
NDIS_STATUS_RESET_IN_PROGRESS
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.
NDIS_STATUS_FAILURE
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 NdisSynchronousOidRequest não pode ser usada para solicitações OID gerais. Para solicitações gerais de OID, use a função NdisOidRequest . NdisSynchronousOidRequest só pode ser usado para OIDs compatíveis com o NDIS para uso com a interface OID síncrona. A maioria dos drivers de protocolo não precisa chamar NdisSynchronousOidRequest

Os drivers de protocolo não devem fechar a associação do adaptador até que as solicitações OID síncronas originadas pelo driver de protocolo sejam concluídas.

Os drivers de protocolo não são necessários para implementar ProtocolOidRequestComplete ou ProtocolDirectOidRequestComplete para chamar NdisSynchronousOidRequest. Como o nome sugere, uma solicitação OID síncrona sempre é concluída de forma síncrona, portanto, não há retorno de chamada assíncrono.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10, versão 1709
Plataforma de Destino Universal
Cabeçalho ndis.h (inclua Ndis.h)
Biblioteca Ndis.lib
IRQL <= DISPATCH_LEVEL

Confira também

NDIS_OID_REQUEST

NdisOidRequest

NdisOpenAdapterEx

ProtocolDirectOidRequestComplete

ProtocolOidRequestComplete

ProtocolStatusEx