NDIS_SWITCH_OPTIONAL_HANDLERS 结构 (ndis.h)
NDIS_SWITCH_OPTIONAL_HANDLERS 结构指定指向 Hyper-V 可扩展交换机处理程序函数的指针。 这些函数可由可扩展开关扩展调用。
语法
typedef struct _NDIS_SWITCH_OPTIONAL_HANDLERS {
NDIS_OBJECT_HEADER Header;
NDIS_SWITCH_ALLOCATE_NET_BUFFER_LIST_FORWARDING_CONTEXT_HANDLER AllocateNetBufferListForwardingContext;
NDIS_SWITCH_FREE_NET_BUFFER_LIST_FORWARDING_CONTEXT_HANDLER FreeNetBufferListForwardingContext;
NDIS_SWITCH_SET_NET_BUFFER_LIST_SOURCE_HANDLER SetNetBufferListSource;
NDIS_SWITCH_ADD_NET_BUFFER_LIST_DESTINATION_HANDLER AddNetBufferListDestination;
NDIS_SWITCH_GROW_NET_BUFFER_LIST_DESTINATIONS_HANDLER GrowNetBufferListDestinations;
NDIS_SWITCH_GET_NET_BUFFER_LIST_DESTINATIONS_HANDLER GetNetBufferListDestinations;
NDIS_SWITCH_UPDATE_NET_BUFFER_LIST_DESTINATIONS_HANDLER UpdateNetBufferListDestinations;
NDIS_SWITCH_COPY_NET_BUFFER_LIST_INFO_HANDLER CopyNetBufferListInfo;
NDIS_SWITCH_REFERENCE_SWITCH_NIC_HANDLER ReferenceSwitchNic;
NDIS_SWITCH_DEREFERENCE_SWITCH_NIC_HANDLER DereferenceSwitchNic;
NDIS_SWITCH_REFERENCE_SWITCH_PORT_HANDLER ReferenceSwitchPort;
NDIS_SWITCH_DEREFERENCE_SWITCH_PORT_HANDLER DereferenceSwitchPort;
NDIS_SWITCH_REPORT_FILTERED_NET_BUFFER_LISTS_HANDLER ReportFilteredNetBufferLists;
NDIS_SWITCH_SET_NET_BUFFER_LIST_SWITCH_CONTEXT_HANDLER SetNetBufferListSwitchContext;
NDIS_SWITCH_GET_NET_BUFFER_LIST_SWITCH_CONTEXT_HANDLER GetNetBufferListSwitchContext;
PVOID SwitchPDReserved[NDIS_SWITCH_OPTIONAL_HANDLERS_PD_RESERVED_SIZE];
} NDIS_SWITCH_OPTIONAL_HANDLERS, *PNDIS_SWITCH_OPTIONAL_HANDLERS;
成员
Header
NDIS_SWITCH_OPTIONAL_HANDLERS 结构的类型、修订和大小。 此成员的格式设置为 NDIS_OBJECT_HEADER 结构。
Header 的 Type 成员必须设置为 NDIS_OBJECT_TYPE_DEFAULT。 若要指定 NDIS_SWITCH_OPTIONAL_HANDLERS 结构的版本,必须将 Header 的 Revision 成员设置为以下值:
NDIS_SWITCH_OPTIONAL_HANDLERS_REVISION_1
NDIS 6.30 及更高版本的原始版本。
将 Size 成员设置为 NDIS_SIZEOF_NDIS_SWITCH_NIC_ARRAY_REVISION_1。
AllocateNetBufferListForwardingContext
指向 AllocateNetBufferListForwardingContext 函数的 指针。
FreeNetBufferListForwardingContext
指向 FreeNetBufferListForwardingContext 函数的 指针。
SetNetBufferListSource
指向 SetNetBufferListSource 函数的 指针。
AddNetBufferListDestination
指向 AddNetBufferListDestination 函数的 指针。
GrowNetBufferListDestinations
指向 GrowNetBufferListDestinations 函数的 指针。
GetNetBufferListDestinations
指向 GetNetBufferListDestinations 函数的 指针。
UpdateNetBufferListDestinations
指向 UpdateNetBufferListDestinations 函数的 指针。
CopyNetBufferListInfo
指向 CopyNetBufferListInfo 函数的指针。
ReferenceSwitchNic
指向 ReferenceSwitchNic 函数的指针。
DereferenceSwitchNic
指向 DereferenceSwitchNic 函数的 指针。
ReferenceSwitchPort
指向 ReferenceSwitchPort 函数的指针。
DereferenceSwitchPort
指向 DereferenceSwitchPort 函数的 指针。
ReportFilteredNetBufferLists
指向 ReportFilteredNetBufferLists 函数的 指针。
SetNetBufferListSwitchContext
GetNetBufferListSwitchContext
SwitchPDReserved[NDIS_SWITCH_OPTIONAL_HANDLERS_PD_RESERVED_SIZE]
注解
可扩展开关处理程序函数支持筛选和转发由可扩展开关扩展执行的操作。 这些操作包括下列各项:
- 分配或释放转发上下文。 此数据存储在带外 (OOB) 数据包 NET_BUFFER_LIST 结构的数据中。 有关转发上下文的详细信息,请参阅 Hyper-V 可扩展交换机转发上下文。
- 获取或设置数据包转发上下文中包含的目标端口。
- 将目标端口添加到数据包的转发上下文。
当可扩展交换机扩展调用 NdisFGetOptionalSwitchHandlers 时, NdisSwitchHandlers 参数包含指向 NDIS_SWITCH_OPTIONAL_HANDLERS 结构的指针。 可扩展交换机扩展通常从其 FilterAttach 函数调用 NdisFGetOptionalSwitchHandlers。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 NDIS 6.30 及更高版本中受支持。 |
标头 | ndis.h (包括 Ndis.h) |
另请参阅
AllocateNetBufferListForwardingContext
FreeNetBufferListForwardingContext