функция обратного вызова FILTER_RETURN_NET_BUFFER_LISTS (ndis.h)
NDIS вызывает функцию FilterReturnNetBufferLists для возврата связанного списка NET_BUFFER_LIST структур и связанных данных в драйвер фильтра.
Синтаксис
FILTER_RETURN_NET_BUFFER_LISTS FilterReturnNetBufferLists;
void FilterReturnNetBufferLists(
[in] NDIS_HANDLE FilterModuleContext,
[in] PNET_BUFFER_LIST NetBufferLists,
[in] ULONG ReturnFlags
)
{...}
Параметры
[in] FilterModuleContext
Дескриптор области контекста для модуля фильтра. Драйвер фильтра создал и инициализировал эту область контекста в функции FilterAttach .
[in] NetBufferLists
Связанный список NET_BUFFER_LIST структур, указанных драйвером фильтра при вызове Функция NdisFIndicateReceiveNetBufferLists . Список может включать NET_BUFFER_LIST структуры из нескольких вызовов NdisFIndicateReceiveNetBufferLists.
[in] ReturnFlags
Флаги NDIS, которые можно объединить с операцией OR. Чтобы очистить все флаги, установите для этого элемента нулевое значение. Эта функция поддерживает следующие флаги:
NDIS_RETURN_FLAGS_DISPATCH_LEVEL
Указывает, что текущий irQL DISPATCH_LEVEL. Дополнительные сведения об этом флаге см. в разделе Dispatch IRQL Tracking.
NDIS_RETURN_FLAGS_SWITCH_SINGLE_SOURCE
Если этот флаг установлен, все пакеты в связанном списке NET_BUFFER_LIST структур поступили из одного порта источника расширяемого коммутатора Hyper-V.
Дополнительные сведения см. в статье Флаги отправки и получения расширяемого коммутатора Hyper-V.
Возвращаемое значение
None
Remarks
FilterReturnNetBufferLists — это необязательная функция. Если драйвер фильтра не фильтрует признаки получения, он может задать точку входа для этой функции значение NULL при вызове Функция NdisFRegisterFilterDriver .
Драйвер фильтра может вызывать функцию NdisSetOptionalHandlers из функции FilterSetModuleOptions , чтобы указать функцию FilterReturnNetBufferLists для модуля фильтра.
Если базовый драйвер инициировал указание получения, драйвер фильтра должен вызвать Функция NdisFReturnNetBufferLists для завершения указания получения.
Если драйвер фильтра вызвал указание получения, FilterReturnNetBufferLists может либо освободить NET_BUFFER_LIST структуры и связанные данные, либо подготовить их к повторному использованию в последующем вызове NdisFIndicateReceiveNetBufferLists.
Драйвер фильтра должен отслеживать признаки получения, которые он инициирует, и убедиться, что он не вызывает NdisFReturnNetBufferLists , когда NDIS вызывает FilterReturnNetBufferLists.
NDIS вызывает FilterReturnNetBufferLists в IRQL <= DISPATCH_LEVEL.
Примеры
Чтобы определить функцию FilterReturnNetBufferLists , необходимо сначала предоставить объявление функции, определяющее тип определяемой функции. Windows предоставляет набор типов функций для драйверов. Объявление функции с помощью типов функций помогает анализу кода для драйверов, средству проверки статических драйверов (SDV) и другим средствам проверки находить ошибки, и это требование для написания драйверов для операционной системы Windows.Например, чтобы определить функцию FilterReturnNetBufferLists с именем MyReturnNetBufferLists, используйте тип FILTER_RETURN_NET_BUFFER_LISTS , как показано в этом примере кода:
FILTER_RETURN_NET_BUFFER_LISTS MyReturnNetBufferLists;
Затем реализуйте функцию следующим образом:
_Use_decl_annotations_
VOID
MyReturnNetBufferLists(
NDIS_HANDLE FilterModuleContext,
PNET_BUFFER_LIST NetBufferLists,
ULONG ReturnFlags
)
{...}
Тип функции FILTER_RETURN_NET_BUFFER_LISTS определен в файле заголовка Ndis.h. Чтобы более точно определить ошибки при запуске средств анализа кода, обязательно добавьте заметку Use_decl_annotations в определение функции. Заметка Use_decl_annotations гарантирует использование заметок, применяемых к типу функции FILTER_RETURN_NET_BUFFER_LISTS в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в разделе Объявление функций с помощью типов ролей функций для драйверов NDIS.
Сведения о Use_decl_annotations см. в статье О поведении функции.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается в NDIS 6.0 и более поздних версиях. |
Целевая платформа | Windows |
Header | ndis.h (включая Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
См. также раздел
NdisFIndicateReceiveNetBufferListsОбратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по