функция обратного вызова NDIS_SWITCH_ALLOCATE_NET_BUFFER_LIST_FORWARDING_CONTEXT (ndis.h)
Функция AllocateNetBufferListForwardingContext подготавливает структуру NET_BUFFER_LIST для операций отправки или получения в расширяемом коммутаторе.
Синтаксис
NDIS_SWITCH_ALLOCATE_NET_BUFFER_LIST_FORWARDING_CONTEXT NdisSwitchAllocateNetBufferListForwardingContext;
NDIS_STATUS NdisSwitchAllocateNetBufferListForwardingContext(
[in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
[in, out] PNET_BUFFER_LIST NetBufferList
)
{...}
Параметры
[in] NdisSwitchContext
Значение NDIS_SWITCH_CONTEXT, содержащее дескриптор модуля расширяемого коммутатора, к которому подключено расширение расширяемого коммутатора Hyper-V. Когда расширение вызывает NdisFGetOptionalSwitchHandlers, этот дескриптор возвращается через параметр NdisSwitchContext .
[in, out] NetBufferList
Указатель на связанный список NET_BUFFER_LIST структур.
Возвращаемое значение
Если вызов выполнен успешно, функция возвращает NDIS_STATUS_SUCCESS. В противном случае возвращается код ошибки NDIS_STATUS_Xxx, определенный в Ndis.h.
Комментарии
Расширение расширяемого коммутатора может выполнять операции отправки пакетов в пути к данным расширяемого коммутатора. Например, расширение может отправлять пакеты на любой порт расширяемого коммутатора. Дополнительные сведения об этом пути данных см. в разделе Путь к данным расширяемого коммутатора Hyper-V.
После того как расширение вызывает NdisAllocateNetBufferList или NdisAllocateCloneNetBufferList для создания или клонирования пакета из пула NET_BUFFER_LIST , расширение должно вызвать функцию AllocateNetBufferListForwardingContext . Эта функция выделяет и инициализирует контекст переадресации расширяемого коммутатора для указанной структуры NET_BUFFER_LIST . Дополнительные сведения об этом контексте см. в разделе Контекст переадресации расширяемого коммутатора Hyper-V.
Расширение должно соответствовать следующим рекомендациям по выделению контекста переадресации с помощью функции AllocateNetBufferListForwardingContext :
-
Расширение вызывает NdisAllocateNetBufferList для выделения пакета из пула NET_BUFFER_LIST расширения для операции отправки или получения через расширяемый коммутатор. Прежде чем расширение инициализирует исходный и конечный порты для пакета, оно должно вызвать AllocateNetBufferListForwardingContext.
Дополнительные сведения о том, как указать порты расширяемого коммутатора для источника и назначения, см. в статье Управление данными источника расширяемого коммутатора Hyper-V и порта назначения.
- Прежде чем расширение вызовет AllocateNetBufferListForwardingContext, оно должно задать для элемента SourceHandle каждой выделенной структуры NET_BUFFER_LIST значение дескриптора, идентифицирующее расширение. Расширение получает этот дескриптор через параметр NdisFilterHandle , когда NDIS вызывает функцию FilterAttach расширения.
- После завершения операции отправки расширение должно вызвать функцию FreeNetBufferListForwardingContext , чтобы освободить ресурсы для контекста переадресации. Расширение должно вызвать эту функцию перед вызовом NdisFreeNetBufferList , чтобы вернуть пакет в NET_BUFFER_LIST пул.
- Если расширение клонирует пакет, оно должно вызвать CopyNetBufferListInfo , чтобы скопировать контекст пересылки из исходного пакета в клонированные пакеты. Расширение должно сделать это после вызова AllocateNetBufferListForwardingContext.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается в NDIS 6.30 и более поздних версиях. |
Целевая платформа | Персональный компьютер |
Верхняя часть | ndis.h (включая Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
См. также раздел
FreeNetBufferListForwardingContext
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по