Compartilhar via


FILTER_DIRECT_OID_REQUEST_COMPLETE função de retorno de chamada (ndis.h)

O NDIS chama a função FilterDirectOidRequestComplete para concluir uma solicitação de OID direta do driver de filtro que consultou ou definiu informações em um driver subjacente.

Nota Você deve declarar a função usando o tipo FILTER_DIRECT_OID_REQUEST_COMPLETE . Para obter mais informações, consulte a seção Exemplos a seguir.
 

Sintaxe

FILTER_DIRECT_OID_REQUEST_COMPLETE FilterDirectOidRequestComplete;

void FilterDirectOidRequestComplete(
  [in] NDIS_HANDLE FilterModuleContext,
  [in] PNDIS_OID_REQUEST OidRequest,
  [in] NDIS_STATUS Status
)
{...}

Parâmetros

[in] FilterModuleContext

Um identificador para a área de contexto do módulo de filtro. O driver de filtro criou e inicializou essa área de contexto na função FilterAttach .

[in] OidRequest

Um ponteiro para a estrutura NDIS_OID_REQUEST que o driver de filtro passou anteriormente para o Função NdisFDirectOidRequest .

[in] Status

O status final da solicitação que um driver subjacente ou NDIS definiu. Esse parâmetro determina o que FilterDirectOidRequestComplete faz com as informações em OidRequest . Para obter uma lista dos possíveis valores de status, consulte os valores retornados de NdisFDirectOidRequest.

Retornar valor

Nenhum

Comentários

FilterDirectOidRequestComplete é uma função opcional. Se um driver de filtro não usar solicitações OID diretas, ele poderá definir o ponto de entrada dessa função como NULL quando chamar o Função NdisFRegisterFilterDriver . Se um driver de filtro definir uma função FilterDirectOidRequest , ele deverá fornecer a função FilterDirectOidRequestComplete .

Se a função NdisFDirectOidRequest retornar NDIS_STATUS_PENDING, o NDIS deverá chamar a função FilterDirectOidRequestComplete para concluir a solicitação OID.

Se um driver de filtro encaminhou uma solicitação que recebeu na função FilterDirectOidRequest ,
FilterDirectOidRequestComplete deve passar a conclusão status a pilha do driver chamando o
Função NdisFDirectOidRequestComplete . Nesse caso, o driver de filtro deve chamar NdisFreeCloneOidRequest, para liberar a estrutura NDIS_OID_REQUEST antes de chamar
NdisFDirectOidRequestComplete.

Um driver de filtro deve acompanhar as solicitações originadas e garantir que ele não chame NdisFDirectOidRequestComplete quando o NDIS chamar FilterDirectOidRequestComplete para essas solicitações.

O NDIS chama FilterDirectOidRequestComplete em IRQL <= DISPATCH_LEVEL.

Exemplos

Para definir uma função FilterDirectOidRequestComplete , primeiro você deve fornecer uma declaração de função que identifique o tipo de função que você está definindo. O Windows fornece um conjunto de tipos de função para drivers. Declarar uma função usando os tipos de função ajuda a Análise de Código para Drivers, SDV ( Verificador de Driver Estático ) e outras ferramentas de verificação a encontrar erros e é um requisito para gravar drivers para o sistema operacional Windows.

Por exemplo, para definir uma função FilterDirectOidRequestComplete chamada "MyDirectOidRequestComplete", use o tipo FILTER_DIRECT_OID_REQUEST_COMPLETE conforme mostrado neste exemplo de código:

FILTER_DIRECT_OID_REQUEST_COMPLETE MyDirectOidRequestComplete;

Em seguida, implemente sua função da seguinte maneira:

_Use_decl_annotations_
VOID
 MyDirectOidRequestComplete(
    NDIS_HANDLE  FilterModuleContext,
    PNDIS_OID_REQUEST  OidRequest,
    NDIS_STATUS Status
    )
  {...}

O tipo de função FILTER_DIRECT_OID_REQUEST_COMPLETE é 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 FILTER_DIRECT_OID_REQUEST_COMPLETE 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
Cliente mínimo com suporte Com suporte no NDIS 6.1 e posterior.
Plataforma de Destino Windows
Cabeçalho ndis.h (inclua Ndis.h)
IRQL <= DISPATCH_LEVEL

Confira também

FilterAttach

FilterDirectOidRequest

NDIS_OID_REQUEST

NdisFDirectOidRequest

NdisFDirectOidRequestComplete

NdisFRegisterFilterDriver

NdisFreeCloneOidRequest