FILTER_RETURN_NET_BUFFER_LISTS função de retorno de chamada (ndis.h)
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 é DISPATCH_LEVEL. Para obter mais informações sobre esse sinalizador, consulte Dispatch IRQL Tracking.
NDIS_RETURN_FLAGS_SWITCH_SINGLE_SOURCE
Se esse sinalizador for definido, todos os pacotes em uma lista vinculada de estruturas de NET_BUFFER_LIST originaram-se da mesma porta de origem do comutador extensível do Hyper-V.
Para obter mais informações, consulte Sinalizadores de envio e recebimento extensíveis do Hyper-V.
Retornar valor
Nenhum
Comentários
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 dessa função como NULL quando 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 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 garantir que ele não chame NdisFReturnNetBufferLists quando o NDIS chamar FilterReturnNetBufferLists.
O NDIS chama FilterReturnNetBufferLists em IRQL <= DISPATCH_LEVEL.
Exemplos
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 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 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 |
---|---|
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
NdisFIndicateReceiveNetBufferListsComentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de