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 FilterReturnNetBufferLists para retornar uma lista vinculada de estruturas de NET_BUFFER_LIST e dados associados a um driver de filtro.
Sintaxe
FILTER_RETURN_NET_BUFFER_LISTS FilterReturnNetBufferLists;
void FilterReturnNetBufferLists(
[in] NDIS_HANDLE FilterModuleContext,
[in] PNET_BUFFER_LIST NetBufferLists,
[in] ULONG ReturnFlags
)
{...}
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] NetBufferLists
Uma lista vinculada de estruturas de NET_BUFFER_LIST que o driver de filtro indicou chamando o função NdisFIndicateReceiveNetBufferLists. A lista pode incluir estruturas de NET_BUFFER_LIST de várias chamadas para NdisFIndicateReceiveNetBufferLists.
[in] ReturnFlags
Sinalizadores NDIS que podem ser combinados com uma operação OR. Para limpar todos os sinalizadores, defina esse membro como zero. Essa função dá suporte aos seguintes sinalizadores:
NDIS_RETURN_FLAGS_DISPATCH_LEVEL
Especifica que o IRQL atual está DISPATCH_LEVEL. Para obter mais informações sobre esse sinalizador, consulte de Acompanhamento de IRQL de Expedição.
NDIS_RETURN_FLAGS_SWITCH_SINGLE_SOURCE
Se esse sinalizador for definido, todos os pacotes em uma lista vinculada de estruturas de NET_BUFFER_LIST se originaram da mesma porta de origem do comutador extensível Hyper-V.
Para obter mais informações, consulte Hyper-V Sinalizadores de Envio e Recebimento Extensíveis do Comutador.
Valor de retorno
Nenhum
Observações
FilterReturnNetBufferLists é uma função opcional. Se um driver de filtro não filtrar as indicações de recebimento, ele poderá definir o ponto de entrada para essa função para NULL ao chamar o função NdisFRegisterFilterDriver.
O driver de filtro pode chamar a função NdisSetOptionalHandlers, da função FilterSetModuleOptions, para especificar uma função FilterReturnNetBufferLists para um módulo de filtro.
Se um driver subjacente iniciou a indicação de recebimento, o driver de filtro deverá chamar o função NdisFReturnNetBufferLists para concluir a indicação de recebimento.
Se o driver de filtro originou a indicação de recebimento, FilterReturnNetBufferLists poderá liberar as estruturas de NET_BUFFER_LIST e os dados associados ou prepará-los para reutilização em uma chamada subsequente para NdisFIndicateReceiveNetBufferLists.
Um driver de filtro deve acompanhar as indicações de recebimento iniciadas e verificar se ele não chama NdisFReturnNetBufferLists quando o NDIS chama FilterReturnNetBufferLists.
Chamadas NDIS FilterReturnNetBufferLists no <DO IRQL = DISPATCH_LEVEL.
exemplos de
Para definir uma função FilterReturnNetBufferLists, 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 FilterReturnNetBufferLists chamada "MyReturnNetBufferLists", use o tipo FILTER_RETURN_NET_BUFFER_LISTS conforme mostrado neste exemplo de código:
FILTER_RETURN_NET_BUFFER_LISTS MyReturnNetBufferLists;
Em seguida, implemente sua função da seguinte maneira:
_Use_decl_annotations_
VOID
MyReturnNetBufferLists(
NDIS_HANDLE FilterModuleContext,
PNET_BUFFER_LIST NetBufferLists,
ULONG ReturnFlags
)
{...}
O tipo de função FILTER_RETURN_NET_BUFFER_LISTS é 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_RETURN_NET_BUFFER_LISTS 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 |