функция обратного вызова NDIS_SWITCH_REPORT_FILTERED_NET_BUFFER_LISTS (ndis.h)
Функция ReportFilteredNetBufferLists сообщает об одном или нескольких сетевых пакетах, которые были удалены или исключены из доставки портов расширением расширяемого коммутатора. Каждый сетевой пакет определяется с помощью структуры NET_BUFFER_LIST .
Синтаксис
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
)
{...}
Параметры
[in] NdisSwitchContext
Значение NDIS_SWITCH_CONTEXT, содержащее дескриптор модуля расширяемого коммутатора, к которому подключено расширение расширяемого коммутатора Hyper-V. Когда расширение вызывает NdisFGetOptionalSwitchHandlers, этот дескриптор возвращается с помощью параметра NdisSwitchContext .
[in] ExtensionGuid
Указатель на структуру UNICODE_STRING , содержащую GUID расширения. NDIS указывает этот GUID в элементе FilterModuleGuidName структуры NDIS_FILTER_ATTACH_PARAMETERS . NDIS передает указатель на эту структуру в параметре AttachParameters при вызове функции FilterAttach расширения.
[in] ExtensionFriendlyName
Указатель на структуру UNICODE_STRING , содержащую понятное имя расширения. Это имя определяется записью DisplayName в директиве AddService INF-файла расширения.
[in] PortId
Значение NDIS_SWITCH_PORT_ID, указывающее расширяемый порт коммутатора. Дополнительные сведения см. в разделе «Примечания».
[in] Flags
Значение UINT32. Если указан флаг NDIS_SWITCH_REPORT_FILTERED_NBL_FLAGS_IS_INCOMING, он указывает, что элемент PortId определяет источник отброшенного пакета. Если он не указан, член PortId определяет порт расширяемого коммутатора назначения. Дополнительные сведения см. в разделе «Примечания».
[in] NumberOfNetBufferLists
Значение UINT32, содержащее количество NET_BUFFER_LIST структур, заданное параметром NetBufferLists .
[in] NetBufferLists
Указатель на связанный список NET_BUFFER_LIST структур.
[in, optional] FilterReason
Указатель на структуру UNICODE_STRING , которая содержит понятное описание причины удаления или исключения пакетов. Дополнительные сведения см. в разделе «Примечания».
Возвращаемое значение
None
Remarks
Если расширение исключает доставку пакета на расширяемый порт коммутатора, оно должно вызывать ReportFilteredNetBufferLists. При вызове этой функции расширяемый модуль коммутатора увеличивает счетчики и регистрирует события для удаленных или исключенных пакетов. При регистрации события для отброшенного или исключенного набора пакетов модуль расширяемого коммутатора использует понятное описание, указанное параметром FilterReason .
Расширение может исключить доставку пакета следующими способами:
- Расширение завершает пакет, а не пересылает его через стек драйверов расширяемого коммутатора. Например, расширение может вызвать NdisFSendNetBufferListsComplete , чтобы удалить пакет, который он проверял, когда NDIS вызывает свою функцию FilterSendNetBufferLists .
-
Расширение изменяет порты назначения для пакета. Например, расширение должно вызывать ReportFilteredNetBufferLists , если оно устанавливает для члена IsExcludedзначение TRUE в структуре NDIS_SWITCH_PORT_DESTINATION для порта назначения пакета.
Дополнительные сведения об исключении доставки пакетов на порты расширяемого коммутатора см. в разделе Исключение доставки пакетов в порты назначения расширяемого коммутатора.
- Параметр NetBufferLists указывает связанный список NET_BUFFER_LIST структур. Все пакеты, указанные в этих структурах, должны быть получены или отправлены на один и тот же порт, а также удалены или исключены по той же причине.
- Если пакет удаляется из-за политики, основанной на исходном порте, необходимо указать флаг NDIS_SWITCH_REPORT_FILTERED_NBL_FLAGS_IS_INCOMING. Расширение также должно задать для параметра PortId идентификатор порта, из которого был получен пакет.
- Если пакет удаляется из-за политики на основе порта назначения, флаг NDIS_SWITCH_REPORT_FILTERED_NBL_FLAGS_IS_INCOMING указывать не следует. Расширение также должно задать для параметра PortId идентификатор порта, на который должен был быть отправлен пакет.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается в NDIS 6.30 и более поздних версиях. |
Целевая платформа | Персональный компьютер |
Верхняя часть | ndis.h (включая Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по