MINIPORT_DIRECT_OID_REQUEST função de retorno de chamada (ndis.h)
O NDIS chama a função MiniportDirectOidRequest de um driver de miniport para lidar com uma solicitação OID direta para consultar ou definir informações no driver.
Sintaxe
MINIPORT_DIRECT_OID_REQUEST MiniportDirectOidRequest;
NDIS_STATUS MiniportDirectOidRequest(
[in] NDIS_HANDLE MiniportAdapterContext,
[in] PNDIS_OID_REQUEST OidRequest
)
{...}
Parâmetros
[in] MiniportAdapterContext
Um identificador para uma área de contexto que o driver de miniporto alocou em sua função MiniportInitializeEx. O driver de miniporto usa essa área de contexto para manter informações de estado para um adaptador de miniporto.
[in] OidRequest
Um ponteiro para uma estrutura de NDIS_OID_REQUEST que contém o buffer e o pacote de solicitação para o driver de miniporto a ser manipulado. Dependendo da solicitação, o driver retorna informações solicitadas na estrutura fornecida.
Valor de retorno
MiniportDirectOidRequest pode retornar um dos seguintes valores de status:
Código de retorno | Descrição |
---|---|
|
O driver de miniporte definiu ou obteve os dados conforme solicitado. |
|
O driver de miniporto concluirá a solicitação de forma assíncrona. Depois que o driver de miniporto tiver concluído todo o processamento, ele deverá chamar o função NdisMDirectOidRequestComplete para informar ao NDIS que a solicitação está concluída. |
|
A solicitação que OidRequest especificada era inválida ou não reconhecida. |
|
A solicitação que OidRequest especificada foi reconhecida, mas o driver de miniporto não dá suporte a ele. |
|
O buffer que OidRequest suprimentos era muito pequeno para armazenar os dados solicitados. |
|
O valor especificado no InformationBufferLength membro da estrutura NDIS_OID_REQUEST em OidRequest está incorreto para o código dexxx OID_ especificado. |
|
Um ou mais dos parâmetros especificados para a solicitação em OidRequest eram inválidos. |
|
Depois de chamar o função MiniportDevicePnPEventNotify para indicar uma remoção surpresa, o NDIS chamou a função miniportHaltEx do driver. Se o driver recebeu solicitações OID antes das chamadas do NDIS MiniportHaltEx, ele deverá concluir imediatamente essas solicitações com um valor de status de NDIS_STATUS_NOT_ACCEPTED. |
|
O driver de miniporto parou de processar a solicitação. Por exemplo, o NDIS chamou a função MiniportResetEx. |
|
O driver de miniporto fornecerá um status de conclusão OID com uma indicação de status subsequente. Um driver de miniporto não pode retornar NDIS_STATUS_INDICATION_REQUIRED a menos que o OID específico o permita. Para determinar se esse status é permitido, consulte a página de referência OID.. Para obter mais informações sobre NDIS_STATUS_INDICATION_REQUIRED, consulte NDIS_OID_REQUEST e NDIS_STATUS_INDICATION. |
Observações
miniportDirectOidRequest é uma função opcional. Um driver de miniporto registrará essa função se ela manipular solicitações OID diretas. Um driver especifica o ponto de entrada MiniportDirectOidRequest quando ele chama o função NdisMRegisterMiniportDriver. Um driver de miniporto que registra o função MiniportCancelDirectOidRequest também deve registrar miniportDirectOidRequest.
O NDIS chama a função MiniportDirectOidRequest em seu próprio nome ou em nome de um driver de protocolo associado que chamou a função NdisDirectOidRequest. Os drivers de relatório devem examinar a solicitação fornecida no parâmetro OidRequest e executar a ação solicitada.
Observe que o NDIS não valida o conteúdo específico do OID em OidRequest. Portanto, o driver em si deve validar esse conteúdo. Se o driver determinar que o valor a ser definido está fora dos limites, ele deverá falhar na solicitação e retornar NDIS_STATUS_INVALID_DATA.
O NDIS não serializa solicitações enviadas para MiniportDirectOidRequest com outras solicitações OID. O driver de miniporto deve ser capaz de lidar com várias chamadas para miniportDirectOidRequest quando outras solicitações enviadas para MiniportOidRequest ou MiniportDirectOidRequest estão pendentes.
Por exemplo, para definir uma função MiniportDirectOidRequest chamada "MyDirectOidRequest", use o tipo MINIPORT_DIRECT_OID_REQUEST conforme mostrado neste exemplo de código:
MINIPORT_DIRECT_OID_REQUEST MyDirectOidRequest;
Em seguida, implemente sua função da seguinte maneira:
_Use_decl_annotations_
NDIS_STATUS
MyDirectOidRequest(
NDIS_HANDLE MiniportAdapterContext,
PNDIS_OID_REQUEST OidRequest
)
{...}
O tipo de função MINIPORT_DIRECT_OID_REQUEST é definido no arquivo de cabeçalho Ndis.h. Para identificar erros com mais precisão ao executar as ferramentas de análise de código, adicione a anotação Use_decl_annotations à sua definição de função. A anotação Use_decl_annotations garante que as anotações aplicadas ao tipo de função MINIPORT_DIRECT_OID_REQUEST no arquivo de cabeçalho sejam usadas. Para obter mais informações sobre os requisitos para declarações de função, consulte Declarando funções usando tipos de função de função para drivers NDIS.
Para obter informações sobre Use_decl_annotations, consulte Anotando o comportamento da função.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Com suporte no NDIS 6.1 e posterior. |
da Plataforma de Destino | Windows |
cabeçalho | ndis.h (inclua Ndis.h) |
IRQL | <= DISPATCH_LEVEL |