NDIS_SWITCH_REPORT_FILTERED_NET_BUFFER_LISTS função de retorno de chamada (ndis.h)
A função ReportFilteredNetBufferLists relata um ou mais pacotes de rede que foram descartados ou excluídos da entrega de porta pela extensão de comutador extensível. Cada pacote de rede é definido por meio de uma estrutura NET_BUFFER_LIST .
Sintaxe
NDIS_SWITCH_REPORT_FILTERED_NET_BUFFER_LISTS NdisSwitchReportFilteredNetBufferLists;
void NdisSwitchReportFilteredNetBufferLists(
[in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
[in] PUNICODE_STRING ExtensionGuid,
[in] PUNICODE_STRING ExtensionFriendlyName,
[in] NDIS_SWITCH_PORT_ID PortId,
[in] UINT32 Flags,
[in] UINT32 NumberOfNetBufferLists,
[in] PNET_BUFFER_LIST NetBufferLists,
[in, optional] PUNICODE_STRING FilterReason
)
{...}
Parâmetros
[in] NdisSwitchContext
Um valor NDIS_SWITCH_CONTEXT que contém o identificador do módulo de comutador extensível ao qual a extensão do comutador extensível do Hyper-V está anexada. Quando a extensão chama NdisFGetOptionalSwitchHandlers, esse identificador é retornado por meio do parâmetro NdisSwitchContext .
[in] ExtensionGuid
Um ponteiro para uma estrutura UNICODE_STRING que contém o GUID da extensão. O NDIS especifica esse GUID no membro FilterModuleGuidName da estrutura NDIS_FILTER_ATTACH_PARAMETERS . O NDIS passa um ponteiro para essa estrutura no parâmetro AttachParameters quando chama a função FilterAttach da extensão.
[in] ExtensionFriendlyName
Um ponteiro para uma estrutura UNICODE_STRING que contém o nome amigável da extensão. Esse nome é definido pela entrada DisplayName na Diretiva AddService do arquivo INF da extensão.
[in] PortId
Um valor NDIS_SWITCH_PORT_ID que especifica uma porta de comutador extensível. Para obter mais informações, consulte a seção Comentários.
[in] Flags
Um valor UINT32. Quando o sinalizador NDIS_SWITCH_REPORT_FILTERED_NBL_FLAGS_IS_INCOMING é especificado, ele indica que o membro PortId define a origem do pacote descartado. Quando não for especificado, o membro PortId definirá a porta de comutador extensível de destino. Para obter mais informações, consulte a seção Comentários.
[in] NumberOfNetBufferLists
Um valor UINT32 que contém o número de estruturas NET_BUFFER_LIST especificadas pelo parâmetro NetBufferLists .
[in] NetBufferLists
Um ponteiro para uma lista vinculada de estruturas de NET_BUFFER_LIST .
[in, optional] FilterReason
Um ponteiro para uma estrutura UNICODE_STRING que contém uma descrição amigável do motivo da remoção ou exclusão dos pacotes. Para obter mais informações, consulte a seção Comentários.
Retornar valor
Nenhum
Comentários
Quando a extensão exclui a entrega de um pacote para uma porta de comutador extensível, ela deve chamar ReportFilteredNetBufferLists. Quando essa função é chamada, o módulo de comutador extensível incrementa contadores e registra eventos para os pacotes descartados ou excluídos. Quando ele registra um evento para um conjunto de pacotes descartado ou excluído, o módulo de comutador extensível usa a descrição amigável especificada pelo parâmetro FilterReason .
A extensão pode excluir a entrega de um pacote das seguintes maneiras:
- A extensão conclui o pacote em vez de encaminhá-lo por meio da pilha de driver de comutador extensível. Por exemplo, a extensão pode chamar NdisFSendNetBufferListsComplete para remover um pacote inspecionado quando o NDIS chama sua função FilterSendNetBufferLists .
-
A extensão altera as portas de destino de um pacote. Por exemplo, a extensão deverá chamar ReportFilteredNetBufferLists se definir o membro IsExcluded como TRUE na estrutura NDIS_SWITCH_PORT_DESTINATION para uma porta de destino do pacote.
Para obter mais informações sobre como excluir a entrega de pacotes para portas de comutador extensíveis, consulte Excluindo a entrega de pacotes para portas de destino de comutador extensível.
- O parâmetro NetBufferLists especificou uma lista vinculada de estruturas de NET_BUFFER_LIST . Todos os pacotes especificados por essas estruturas devem ter sido recebidos ou enviados para a mesma porta e foram descartados ou excluídos pelo mesmo motivo.
- Se o pacote estiver sendo descartado devido à política com base na porta de origem, o sinalizador NDIS_SWITCH_REPORT_FILTERED_NBL_FLAGS_IS_INCOMING deverá ser especificado. A extensão também deve definir o parâmetro PortId como o identificador da porta da qual o pacote foi recebido.
- Se o pacote estiver sendo descartado devido à política com base na porta de destino, o sinalizador NDIS_SWITCH_REPORT_FILTERED_NBL_FLAGS_IS_INCOMING não deverá ser especificado. A extensão também deve definir o parâmetro PortId como o identificador da porta para a qual o pacote deveria ser enviado.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Com suporte no NDIS 6.30 e posterior. |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | ndis.h (inclua Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
Confira também
Comentá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