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 结构。

HeaderType 成员必须设置为 NDIS_OBJECT_TYPE_DEFAULT。 若要指定 NDIS_SWITCH_OPTIONAL_HANDLERS 结构的版本,必须将 HeaderRevision 成员设置为以下值:

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)

另请参阅

AddNetBufferListDestination

AllocateNetBufferListForwardingContext

CopyNetBufferListInfo

DereferenceSwitchNic

DereferenceSwitchPort

FilterAttach

FreeNetBufferListForwardingContext

GrowNetBufferListDestinations

NDIS_OBJECT_HEADER

NET_BUFFER_LIST

NdisFGetOptionalSwitchHandlers

ReferenceSwitchNic

ReferenceSwitchPort

ReportFilteredNetBufferLists

SetNetBufferListSource

UpdateNetBufferListDestinations