次の方法で共有


KMCL_SERVER_ONLY_METHODS構造体 (vmbuskernelmodeclientlibapi.h)

KMCL_SERVER_ONLY_METHODS 構造体には、VMBus カーネル モード クライアント ライブラリ (KMCL) インターフェイスのサーバー専用関数の関数ポインターが含まれています。

KMCL インターフェイスにアクセスする方法の詳細については、「解説」セクションを参照してください。

構文

typedef struct _KMCL_SERVER_ONLY_METHODS {
  PFN_VMB_CHANNEL_MAP_GPADL                                     VmbChannelMapGpadl;
  PFN_VMB_CHANNEL_RESTORE_FROM_BUFFER                           VmbChannelRestoreFromBuffer;
  PFN_VMB_CHANNEL_SAVE_BEGIN                                    VmbChannelSaveBegin;
  PFN_VMB_CHANNEL_SAVE_CONTINUE                                 VmbChannelSaveContinue;
  PFN_VMB_CHANNEL_SAVE_END                                      VmbChannelSaveEnd;
  PFN_VMB_CHANNEL_UNMAP_GPADL                                   VmbChannelUnmapGpadl;
  PFN_VMB_CONVERT_VMBUS_HANDLE_TO_KERNEL_HANDLE                 VmbConvertVmbusHandleToKernelHandle;
  PFN_VMB_PACKET_RESTORE                                        VmbPacketRestore;
  PFN_VMB_SERVER_CHANNEL_INIT_SET_FLAGS                         VmbServerChannelInitSetFlags;
  PFN_VMB_SERVER_CHANNEL_INIT_SET_MMIO_MEGABYTES                VmbServerChannelInitSetMmioMegabytes;
  PFN_VMB_SERVER_CHANNEL_INIT_SET_SAVE_RESTORE_PACKET_CALLBACKS VmbServerChannelInitSetSaveRestorePacketCallbacks;
  PFN_VMB_SERVER_CHANNEL_INIT_SET_TARGET_INTERFACE_ID           VmbServerChannelInitSetTargetInterfaceId;
  PFN_VMB_SERVER_CHANNEL_INIT_SET_TARGET_VTL                    VmbServerChannelInitSetTargetVtl;
  PFN_VMB_SERVER_CHANNEL_INIT_SET_VMBUS_HANDLE                  VmbServerChannelInitSetVmbusHandle;
} KMCL_SERVER_ONLY_METHODS;

メンバーズ

VmbChannelMapGpadl

VmbChannelMapGpadl 関数へのポインター。

VmbChannelRestoreFromBuffer

VmbChannelRestoreFromBuffer 関数へのポインター。

VmbChannelSaveBegin

VmbChannelSaveBegin 関数へのポインター。

VmbChannelSaveContinue

VmbChannelSaveContinue 関数へのポインター。

VmbChannelSaveEnd

VmbChannelSaveEnd 関数へのポインター。

VmbChannelUnmapGpadl

VmbChannelUnmapGpadl 関数へのポインター。

VmbConvertVmbusHandleToKernelHandle

VmbConvertVmbusHandleToKernelHandle 関数へのポインター。

VmbPacketRestore

VmbPacketRestore 関数へのポインター。

VmbServerChannelInitSetFlags

VmbServerChannelInitSetFlags 関数へのポインター。

VmbServerChannelInitSetMmioMegabytes

VmbServerChannelInitSetMmioMegabytes 関数へのポインター。

VmbServerChannelInitSetSaveRestorePacketCallbacks

VmbServerChannelInitSetSaveRestorePacketCallbacks 関数へのポインター。

VmbServerChannelInitSetTargetInterfaceId

VmbServerChannelInitSetTargetInterfaceId 関数へのポインター。

VmbServerChannelInitSetTargetVtl

VmbServerChannelInitSetTargetVtl 関数へのポインター。

VmbServerChannelInitSetVmbusHandle

VmbServerChannelInitSetVmbusHandle 関数へのポインター。

備考

KMCL_SERVER_ONLY_METHODS の関数ポインターは、Vmbkmcl.sys バス ドライバーによって提供される VMBus カーネル モード クライアント ライブラリ (KMCL) インターフェイスを介して呼び出されます。 この構造体には、サーバー専用関数の関数ポインターが含まれています。

KMCL インターフェイスのクライアント関数とサーバー専用関数の両方にアクセスするには、インターフェイスを受け取る KMCL_SERVER_INTERFACE_V1 構造体を割り当て、WdfFdoQueryForInterface を呼び出すか、次のパラメーターを使用して WdfIoTargetQueryForInterfaceします。

  • InterfaceType パラメーター: KMCL_SERVER_INTERFACE_TYPE
  • Size パラメーター: sizeof(KMCL_SERVER_INTERFACE_V1)
  • Version パラメーター: KMCL_SERVER_INTERFACE_VERSION_V1

KMCL_SERVER_INTERFACE_V1 構造体は、C 言語コードに対して次のように定義されます。

typedef struct _KMCL_SERVER_INTERFACE_V1 {
    KMCL_CLIENT_INTERFACE_V1;
    KMCL_SERVER_ONLY_METHODS;
} KMCL_SERVER_INTERFACE_V1, *PKMCL_SERVER_INTERFACE_V1;

インターフェイス クエリ関数が成功した場合、KMCL_SERVER_INTERFACE_V1 構造体には、KMCL_CLIENT_INTERFACE_V1 構造体と KMCL_SERVER_ONLY_METHODS 構造体の両方が含まれます。 KMCL_SERVER_ONLY_METHODS 構造体には、VMBus KMCL サーバー専用関数の呼び出しに使用できる関数ポインターが含まれています。

KMCL クライアント メソッドについては、KMCL_CLIENT_INTERFACE_V1 構造を参照してください。

ドライバー定義インターフェイスの詳細については、「Driver-Defined インターフェイスの使用 」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 10 バージョン 1809
ヘッダー vmbuskernelmodeclientlibapi.h

関連項目

Driver-Defined インターフェイスの使用

WdfFdoQueryForInterface

WdfIoTargetQueryForInterface

KMCL_CLIENT_INTERFACE_V1