共用方式為


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結構的版本,標頭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]

備註

可延伸交換器處理程式函式支援可延伸交換器延伸模組所執行的篩選和轉送動作。 這些動作包括下列各項:

  • 配置或釋放轉送內容。 此數據會儲存在封包 NET_BUFFER_LIST 結構的頻外 (OOB) 數據中。 如需轉送內容的詳細資訊,請參閱 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