Compartilhar via


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

A função FilterStatus indica status alterações relatadas pelo NDIS ou por um driver subjacente.

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

Sintaxe

FILTER_STATUS FilterStatus;

void FilterStatus(
  [in] NDIS_HANDLE FilterModuleContext,
  [in] PNDIS_STATUS_INDICATION StatusIndication
)
{...}

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] StatusIndication

Um ponteiro para uma estrutura NDIS_STATUS_INDICATION que contém as informações de status.

Retornar valor

Nenhum

Comentários

FilterStatus é uma função opcional. Se um driver de filtro não usar status indicações, ele poderá definir o ponto de entrada dessa função como NULL quando chamar o Função NdisFRegisterFilterDriver .

Para determinar status de vínculo, use as indicações de status de drivers subjacentes em vez de consultas OID. Essas indicações status melhorarão o desempenho do sistema e evitarão possíveis condições de corrida.

Um driver de filtro geralmente chama a função NdisFIndicateStatus no final de sua função FilterStatus para passar a indicação status para drivers sobrepostos.

Um driver de filtro pode filtrar determinadas indicações de status ou modificar a status indicada. Para filtrar uma indicação status, o driver simplesmente não chama NdisFIndicateStatus.

O NDIS chama FilterStatus em IRQL <= DISPATCH_LEVEL.

Exemplos

Para definir uma função FilterStatus , 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 escrever drivers para o sistema operacional Windows.

Por exemplo, para definir uma função FilterStatus chamada "MyStatus", use o tipo FILTER_STATUS conforme mostrado neste exemplo de código:

FILTER_STATUS MyStatus;

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

_Use_decl_annotations_
VOID
 MyStatus(
    NDIS_HANDLE  FilterModuleContext,
    PNDIS_STATUS_INDICATION  StatusIndication
    )
  {...}

O tipo de função FILTER_STATUS é 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_STATUS 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.0 e posterior.
Plataforma de Destino Windows
Cabeçalho ndis.h (inclua Ndis.h)
IRQL <= DISPATCH_LEVEL

Confira também

FilterAttach

NDIS_STATUS_INDICATION

NdisFIndicateStatus

NdisFRegisterFilterDriver