次の方法で共有


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 Version 1809
Header vmbuskernelmodeclientlibapi.h

こちらもご覧ください

ドライバー定義インターフェイスの使用

WdfFdoQueryForInterface

WdfIoTargetQueryForInterface

KMCL_CLIENT_INTERFACE_V1