функция обратного вызова NDIS_SWITCH_COPY_NET_BUFFER_LIST_INFO (ndis.h)
Расширение расширяемого коммутатора Hyper-V вызывает функцию CopyNetBufferListInfo для копирования контекста внеполосной пересылки (OOB) из структуры NET_BUFFER_LIST исходного пакета в структуру NET_BUFFER_LIST конечного пакета. Этот контекст включает в себя расширяемый исходный порт коммутатора и сведения о сетевом адаптере. Также можно скопировать сведения о портах назначения расширяемого коммутатора.
Синтаксис
NDIS_SWITCH_COPY_NET_BUFFER_LIST_INFO NdisSwitchCopyNetBufferListInfo;
NDIS_STATUS NdisSwitchCopyNetBufferListInfo(
[in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
[in, out] PNET_BUFFER_LIST DestNetBufferList,
[in] PNET_BUFFER_LIST SrcNetBufferList,
[in] UINT32 Flags
)
{...}
Параметры
[in] NdisSwitchContext
Значение NDIS_SWITCH_CONTEXT, содержащее дескриптор модуля расширяемого коммутатора, к которому присоединено расширение. Когда расширение вызывает NdisFGetOptionalSwitchHandlers, этот дескриптор возвращается с помощью параметра NdisSwitchContext .
[in, out] DestNetBufferList
Указатель на структуру NET_BUFFER_LIST для целевого пакета, в который копируется контекст переадресации расширяемого переключателя.
[in] SrcNetBufferList
Указатель на структуру NET_BUFFER_LIST для исходного пакета, из которого копируется контекст переадресации расширяемого коммутатора.
[in] Flags
Значение UINT32. При указании флага NDIS_SWITCH_COPY_NBL_INFO_FLAGS_PRESERVE_DESTINATIONS функция копирует порты назначения расширяемого коммутатора из исходного пакета в целевой пакет.
Данные, содержащиеся в NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO объединении исходного пакета, всегда копируются в контекст переадресации расширяемого коммутатора в целевом пакете. Эти данные включают идентификаторы исходных портов и индекс подключения сетевого адаптера, из которого был получен пакет. В зависимости от количества портов назначения расширяемого коммутатора, которые копируются в целевой пакет, член NumAvailableDestinations NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO объединения обновляется в пакете назначения.
Дополнительные сведения о контексте переадресации см. в разделе Контекст переадресации расширяемого коммутатора Hyper-V.
Возвращаемое значение
Если вызов завершается успешно, функция возвращает NDIS_STATUS_SUCCESS. В противном случае возвращается код ошибки NDIS_STATUS_Xxx, определенный в Ndis.h.
Комментарии
Расширение расширяемого коммутатора вызывает функцию CopyNetBufferListInfo для копирования данных OOB из исходного пакета в целевой пакет. Эти данные включают в себя следующее:
- Данные из массива NetBufferListInfo структуры NET_BUFFER_LIST исходного пакета.
- NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO данные из контекста переадресации расширяемого коммутатора исходного пакета.
-
Данные для портов назначения расширяемого коммутатора из контекста переадресации расширяемого коммутатора исходного пакета.
Примечание Эти данные копируются, только если указан флаг NDIS_SWITCH_COPY_NBL_INFO_FLAGS_PRESERVE_DESTINATIONS.
-
Расширение должно сначала инициализировать структуру NET_BUFFER_LIST для целевого пакета, который является производным от структуры NET_BUFFER_LIST исходного пакета.
Например, расширение может вызвать NdisAllocateCloneNetBufferList , чтобы создать полную копию исходного пакета. Расширение также может вызывать NdisAllocateFragmentNetBufferList для создания копии только фрагмента исходного пакета. Дополнительные сведения см. в разделе Производные структуры NET_BUFFER_LIST.
- Расширение должно вызвать функцию AllocateNetBufferListForwardingContext , чтобы выделить контекст переадресации расширяемого коммутатора для конечного пакета. Эти данные используются для хранения сведений о переадресации расширяемого коммутатора OOB, таких как исходный и конечный порты пакета.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Поддерживается в NDIS 6.30 и более поздних версиях. |
Целевая платформа | Персональный компьютер |
Верхняя часть | ndis.h (включая Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
См. также раздел
AllocateNetBufferListForwardingContext
NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO
NdisAllocateCloneNetBufferList