Função NdisMCmOidRequest (ndis.h)

A função NdisMCmOidRequest envia uma solicitação OID de um driver MCM (gerenciador de chamadas de miniporto) para um cliente CoNDIS.

Sintaxe

NDIS_STATUS NdisMCmOidRequest(
  [in]           NDIS_HANDLE       NdisAfHandle,
  [in, optional] NDIS_HANDLE       NdisVcHandle,
  [in, optional] NDIS_HANDLE       NdisPartyHandle,
                 PNDIS_OID_REQUEST NdisOidRequest
);

Parâmetros

[in] NdisAfHandle

Um identificador que identifica a AF (família de endereços) e implicitamente o cliente para o qual a solicitação OID é direcionada. O driver MCM obteve originalmente esse identificador como um parâmetro de entrada para sua função ProtocolCmOpenAf .

[in, optional] NdisVcHandle

Um identificador que identifica a VC (conexão virtual) para a qual o chamador está solicitando ou definindo informações, se a solicitação for específica de VC. Caso contrário, se essa solicitação não for específica de VC, esse parâmetro será NULL. Para qualquer solicitação específica de VC, o chamador originalmente obteve esse identificador quando criou a VC com a função NdisMCmCreateVc ou como um parâmetro de entrada para sua função ProtocolCoCreateVc .

[in, optional] NdisPartyHandle

Um identificador que identifica a parte em uma VC de vários pontos para a qual o chamador está solicitando ou definindo informações, se a solicitação for específica da parte. Caso contrário, se essa solicitação não for específica à parte, esse parâmetro será NULL. Para qualquer solicitação específica de parte, o driver MCM obteve originalmente esse identificador como um parâmetro de entrada para sua função ProtocolCmAddParty .

NdisOidRequest

Um ponteiro para um buffer alocado pelo chamador que contém uma estrutura NDIS_OID_REQUEST .

Retornar valor

NdisMCmOidRequest retorna 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_PENDING
A solicitação está sendo tratada de forma assíncrona e o NDIS chamará o chamador Função ProtocolCoOidRequestComplete quando a solicitação é concluída.
NDIS_STATUS_INVALID_OID
O código OID_XXX especificado no membro Oid da estrutura NDIS_OID_REQUEST no parâmetro OidRequest é inválido ou sem suporte pelo driver subjacente.
NDIS_STATUS_INVALID_LENGTH ou NDIS_STATUS_BUFFER_TOO_SHORT
O valor especificado no membro InformationBufferLength da estrutura NDIS_OID_REQUEST em OidRequest não corresponde aos requisitos do código OID_XXX fornecido. Se o buffer de informações for muito pequeno, o membro BytesNeeded de NDIS_OID_REQUEST conterá o valor correto para InformationBufferLength, quando NdisMCmOidRequest retornar.
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 cliente 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, se enviada posteriormente, falhará pelo mesmo motivo.
NDIS_STATUS_FAILURE
Esse valor normalmente é um padrão não específico que é retornado quando nenhum dos códigos de status NDIS_STATUS_XXX mais específicos se aplica.
NDIS_STATUS_REQUEST_ABORTED
O driver de destino parou de processar a solicitação.

Comentários

Para iniciar solicitações OID para clientes CoNDIS, os drivers MCM chamam a função NdisMCmOidRequest . Antes que um driver MCM chame NdisMCmOidRequest, o driver aloca memória para sua solicitação e inicializa uma estrutura de NDIS_OID_REQUEST . O MCM define o membro Oid da estrutura NDIS_OID_REQUEST com um código OID do CoNDIS.

Um driver MCM pode chamar NdisMCmOidRequest para comunicar informações orientadas à conexão, como uma alteração nos endereços para o cliente que o parâmetro NdisAfHandle identifica.

Depois que o MCM chama NdisMCmOidRequest, o NDIS chama a função ProtocolCoOidRequest do cliente.

Se a solicitação do driver MCM for específica de VC ou específica da parte, o driver MCM também passará um valor não NULL no parâmetro NdisVcHandle ou NdisPartyHandle , respectivamente.

Se NdisMCmOidRequest retornar NDIS_STATUS_PENDING, a solicitação está sendo tratada de forma assíncrona e o NDIS chamará o MCM's Função ProtocolCoOidRequestComplete quando a solicitação é concluída. Se NdisMCmOidRequest retornar qualquer outra status, a solicitação será concluída quando NdisMCmOidRequest retornar e o NDIS não chamar ProtocolCoOidRequestComplete.

Para obter mais informações sobre os OIDs definidos para usar com NdisMCmOidRequest, consulte OIDs do NDIS.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.0 e posterior.
Plataforma de Destino Área de Trabalho
Cabeçalho ndis.h (inclua Ndis.h)
Biblioteca Ndis.lib
IRQL <= DISPATCH_LEVEL
Regras de conformidade da DDI Irql_MCM_Function(ndis)

Confira também

NDIS_OID_REQUEST

NdisMCmCreateVc

ProtocolCmAddParty

ProtocolCmOpenAf

ProtocolCoCreateVc

ProtocolCoOidRequest

ProtocolCoOidRequestComplete