Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O NDIS chama a função FilterOidRequestComplete para concluir uma solicitação de driver de filtro que consultou ou definiu informações em um driver subjacente.
Sintaxe
FILTER_OID_REQUEST_COMPLETE FilterOidRequestComplete;
void FilterOidRequestComplete(
[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 a função NdisFOidRequest.
[in] Status
O status final da solicitação definida por um driver subjacente ou pelo NDIS. Esse parâmetro determina o que FilterOidRequestComplete faz com as informações em OidRequest. Para obter uma lista dos valores de status possíveis, consulte os valores retornados de NdisFOidRequest.
Valor de retorno
Nenhum
Observações
FilterOidRequestComplete é uma função opcional. Se um driver de filtro não usar solicitações OID, ele poderá definir o ponto de entrada para essa função para NULL ao chamar a função NdisFRegisterFilterDriver. Se um driver de filtro definir uma função FilterOidRequest, ele deverá fornecer a função FilterOidRequestComplete.
Se a função NdisFOidRequest retornar NDIS_STATUS_PENDING, o NDIS deverá chamar a função FilterOidRequestComplete para concluir a solicitação OID.
Se um driver de filtro encaminhou uma solicitação recebida na função FilterOidRequest, FilterOidRequestComplete deverá passar o status de conclusão para cima da pilha de driver chamando a função NdisFOidRequestComplete. O driver de filtro deve chamar NdisFreeCloneOidRequest para liberar a estrutura de NDIS_OID_REQUEST antes de chamar NdisFOidRequestComplete.
Um driver de filtro deve acompanhar as solicitações originadas e garantir que ele não chame NdisFOidRequestComplete quando o NDIS chama FilterOidRequestComplete para essas solicitações.
Chamadas NDIS FilterOidRequestComplete no <DO IRQL = DISPATCH_LEVEL.
exemplos de
Para definir uma função FilterOidRequestComplete, 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 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 FilterOidRequestComplete chamada "MyOidRequestComplete", use o tipo FILTER_OID_REQUEST_COMPLETE conforme mostrado neste exemplo de código:
FILTER_OID_REQUEST_COMPLETE MyOidRequestComplete;
Em seguida, implemente sua função da seguinte maneira:
_Use_decl_annotations_
NDIS_STATUS
MyOidRequestComplete(
NDIS_HANDLE FilterModuleContext,
PNDIS_OID_REQUEST OidRequest,
NDIS_STATUS Status
)
{...}
O tipo de função FILTER_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_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 |
---|---|
de cliente com suporte mínimo | Com suporte no NDIS 6.0 e posterior. |
da Plataforma de Destino | Windows |
cabeçalho | ndis.h (inclua Ndis.h) |
IRQL | <= DISPATCH_LEVEL |