次の方法で共有


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 以降の元のバージョン。

[サイズ] メンバーを [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 を含む)

こちらもご覧ください

AddNetBufferListDestination

AllocateNetBufferListForwardingContext

CopyNetBufferListInfo

DereferenceSwitchNic

DereferenceSwitchPort

FilterAttach

FreeNetBufferListForwardingContext

GrowNetBufferListDestinations

NDIS_OBJECT_HEADER

NET_BUFFER_LIST

NdisFGetOptionalSwitchHandlers

ReferenceSwitchNic

ReferenceSwitchPort

ReportFilteredNetBufferLists

SetNetBufferListSource

UpdateNetBufferListDestinations