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 以降の元のバージョン。
[サイズ] メンバーを [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 以降でサポートされています。 |
Header | ndis.h (Ndis.h を含む) |
こちらもご覧ください
AllocateNetBufferListForwardingContext
FreeNetBufferListForwardingContext