функция обратного вызова NDIS_SWITCH_SET_NET_BUFFER_LIST_SOURCE (ndis.h)
Функция SetNetBufferListSource задает идентификатор порта источника расширяемого коммутатора Hyper-V и индекс сетевого адаптера для пакета, указанного в структуре NET_BUFFER_LIST .
Синтаксис
NDIS_SWITCH_SET_NET_BUFFER_LIST_SOURCE NdisSwitchSetNetBufferListSource;
NDIS_STATUS NdisSwitchSetNetBufferListSource(
[in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
PNET_BUFFER_LIST NetBufferList,
[in] NDIS_SWITCH_PORT_ID PortId,
[in] NDIS_SWITCH_NIC_INDEX NicIndex
)
{...}
Параметры
[in] NdisSwitchContext
Значение NDIS_SWITCH_CONTEXT, содержащее дескриптор модуля расширяемого коммутатора, к которому подключено расширение расширяемого коммутатора Hyper-V. Когда расширение вызывает NdisFGetOptionalSwitchHandlers, этот дескриптор возвращается с помощью параметра NdisSwitchContext .
NetBufferList
Указатель на структуру NET_BUFFER_LIST для одного пакета.
[in] PortId
Значение NDIS_SWITCH_PORT_ID, указывающее уникальный идентификатор порта источника на расширяемом коммутаторе.
[in] NicIndex
Значение NDIS_SWITCH_NIC_INDEX, указывающее индекс сетевого адаптера, подключенного к порту расширяемого коммутатора, заданному параметром PortId .
Дополнительные сведения о NDIS_SWITCH_NIC_INDEX значениях см. в разделе Значения индекса сетевого адаптера.
Возвращаемое значение
Если вызов завершается успешно, функция возвращает NDIS_STATUS_SUCCESS. В противном случае возвращается код ошибки NDIS_STATUS_Xxx, определенный в Ndis.h.
Комментарии
Расширение расширяемого коммутатора вызывает функцию SetNetBufferListSource , чтобы задать идентификатор исходного порта и индекс сетевого адаптера в структуре NET_BUFFER_LIST пакета. Расширение делает это для следующих типов пакетов:
-
Новый пакет, выделенный расширением для операций отправки или получения.
Примечание Прежде чем расширение вызовет SetNetBufferListSource для выделенного пакета, оно должно вызвать Метод AllocateNetBufferListForwardingContext.
- Повторяющийся пакет, клонированный расширением из исходного пакета, который он фильтровал. Расширение дублирует пакет, вызывая NdisAllocateCloneNetBufferList.
Например, пакет с идентификатором исходного порта NDIS_SWITCH_DEFAULT_PORT_ID является доверенным и обходит множество расширяемых политик портов коммутатора. Эти политики включают списки управления доступом (ACL) и качество обслуживания (QoS). Если расширение указывает для пакета порт источника, отличный от порта по умолчанию, это позволяет применять политики для этого порта к пакету.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается в NDIS 6.30 и более поздних версиях. |
Целевая платформа | Персональный компьютер |
Верхняя часть | ndis.h (включая Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
См. также раздел
AllocateNetBufferListForwardingContext