функция обратного вызова MINIPORT_RETURN_NET_BUFFER_LISTS (ndis.h)
NDIS вызывает функцию MiniportReturnNetBufferLists , чтобы вернуть права владения NET_BUFFER_LIST структурами, связанными NET_BUFFER структурами и любыми подключенными многомерными списками mdl к драйверу минипорта.
Синтаксис
MINIPORT_RETURN_NET_BUFFER_LISTS MiniportReturnNetBufferLists;
void MiniportReturnNetBufferLists(
[in] NDIS_HANDLE MiniportAdapterContext,
[in] PNET_BUFFER_LIST NetBufferLists,
[in] ULONG ReturnFlags
)
{...}
Параметры
[in] MiniportAdapterContext
Дескриптор контекстной области, выделенной драйвером мини-порта в функции MiniportInitializeEx . Драйвер мини-порта использует эту область контекста для хранения сведений о состоянии адаптера.
[in] NetBufferLists
Указатель на связанный список NET_BUFFER_LIST структур, которые NDIS возвращает драйверу мини-порта. Связанный список может содержать NET_BUFFER_LIST структуры из нескольких предыдущих вызовов Функция NdisMIndicateReceiveNetBufferLists .
[in] ReturnFlags
Флаги NDIS, которые можно объединить с операцией OR. Эта функция поддерживает флаг NDIS_RETURN_FLAGS_DISPATCH_LEVEL, который, если он задан, указывает, что текущий IRQL DISPATCH_LEVEL. Дополнительные сведения об этом флаге см. в разделе Dispatch IRQL Tracking.
Возвращаемое значение
None
Remarks
MiniportReturnNetBufferLists — это обязательная функция для драйверов минипорта, которые указывают на полученные сетевые данные с помощью Функция NdisMIndicateReceiveNetBufferLists . Когда драйвер с превышением выполняет вызовФункция NdisReturnNetBufferLists, NDIS вызывает функцию MiniportReturnNetBufferLists драйвера мини-порта, которая указывает указанные структуры NET_BUFFER_LIST.
MiniportReturnNetBufferLists может подготовить возвращаемую структуру NET_BUFFER_LIST для использования в последующем указании получения. Хотя MiniportReturnNetBufferLists может возвращать NET_BUFFER_LIST структуры в пул (например, он может вызывать функцию NdisFreeNetBufferList ), может быть эффективнее повторно использовать структуры, не возвращая их в пул.
NDIS вызывает MiniportReturnNetBufferLists по адресу IRQL<= DISPATCH_LEVEL.
Примеры
Чтобы определить функцию MiniportReturnNetBufferLists , необходимо сначала предоставить объявление функции, определяющее тип определяемой функции. Windows предоставляет набор типов функций для драйверов. Объявление функции с помощью типов функций помогает анализу кода для драйверов, средству проверки статических драйверов (SDV) и другим средствам проверки находить ошибки, и это требование для написания драйверов для операционной системы Windows.Например, чтобы определить функцию MiniportReturnNetBufferLists с именем MyReturnNetBufferLists, используйте тип MINIPORT_RETURN_NET_BUFFER_LISTS , как показано в этом примере кода:
MINIPORT_RETURN_NET_BUFFER_LISTS MyReturnNetBufferLists;
Затем реализуйте функцию следующим образом:
_Use_decl_annotations_
VOID
MyReturnNetBufferLists(
NDIS_HANDLE MiniportAdapterContext,
PNET_BUFFER_LIST NetBufferLists,
ULONG ReturnFlags
)
{...}
Тип функции MINIPORT_RETURN_NET_BUFFER_LISTS определен в файле заголовка Ndis.h. Чтобы более точно определить ошибки при запуске средств анализа кода, обязательно добавьте заметку Use_decl_annotations в определение функции. Заметка Use_decl_annotations гарантирует использование заметок, которые применяются к типу функции MINIPORT_RETURN_NET_BUFFER_LISTS в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в разделе Объявление функций с помощью типов ролей функций для драйверов NDIS.
Сведения о Use_decl_annotations см. в статье О поведении функции.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается в NDIS 6.0 и более поздних версиях. |
Целевая платформа | Windows |
Header | ndis.h (включая Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
См. также раздел
NdisMIndicateReceiveNetBufferListsОбратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по