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 構造体として書式設定されます。
ヘッダー の 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]
備考
拡張可能スイッチ ハンドラー関数は、拡張可能スイッチ拡張機能によって実行されるフィルター処理と転送アクションのサポートを提供します。 これらのアクションには、次のものが含まれます。
- 転送コンテキストを割り当てるか解放します。 このデータは、パケットの NET_BUFFER_LIST 構造の帯域外 (OOB) データに格納されます。 転送コンテキストの詳細については、「Hyper-V 拡張可能スイッチ転送コンテキストの」を参照してください。
- パケットの転送コンテキストに含まれる宛先ポートを取得または設定します。
- パケットの転送コンテキストに宛先ポートを追加します。
拡張可能スイッチ拡張機能が NdisFGetOptionalSwitchHandlers 呼び出すと、NdisSwitchHandlers パラメーターには、NDIS_SWITCH_OPTIONAL_HANDLERS 構造体へのポインターが含まれます。 拡張可能スイッチ拡張機能は、通常、FilterAttach 関数から ndisFGetOptionalSwitchHandlers 呼び出します。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | NDIS 6.30 以降でサポートされています。 |
ヘッダー | ndis.h (Ndis.h を含む) |
関連項目
AddNetBufferListDestination の
AllocateNetBufferListForwardingContext の
CopyNetBufferListInfo の
dereferenceSwitchPort の
FreeNetBufferListForwardingContext の
GrowNetBufferListDestinations の
NdisFGetOptionalSwitchHandlers の
SetNetBufferListSource の
UpdateNetBufferListDestinations の