次の方法で共有


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 構造のバージョンを指定するには、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]

備考

拡張可能スイッチ ハンドラー関数は、拡張可能スイッチ拡張機能によって実行されるフィルター処理と転送アクションのサポートを提供します。 これらのアクションには、次のものが含まれます。

  • 転送コンテキストを割り当てるか解放します。 このデータは、パケットの 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