// vmbuskernelmodeclientlibapi.h
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;
View the official Windows Driver Kit DDI referenceNo description available.
The KMCL_SERVER_ONLY_METHODS structure contains function pointers for server-only functions for the VMBus Kernel Mode Client Library (KMCL) interface.
For more information about how to access the KMCL interface, see the Remarks section.
VmbChannelMapGpadlA pointer to the VmbChannelMapGpadl function.
VmbChannelRestoreFromBufferA pointer to the VmbChannelRestoreFromBuffer function.
VmbChannelSaveBeginA pointer to the VmbChannelSaveBegin function.
VmbChannelSaveContinueA pointer to the VmbChannelSaveContinue function.
VmbChannelSaveEndA pointer to the VmbChannelSaveEnd function.
VmbChannelUnmapGpadlA pointer to the VmbChannelUnmapGpadl function.
VmbConvertVmbusHandleToKernelHandleA pointer to the VmbConvertVmbusHandleToKernelHandle function.
VmbPacketRestoreA pointer to the VmbPacketRestore function.
VmbServerChannelInitSetFlagsA pointer to the VmbServerChannelInitSetFlags function.
VmbServerChannelInitSetMmioMegabytesA pointer to the VmbServerChannelInitSetMmioMegabytes function.
VmbServerChannelInitSetSaveRestorePacketCallbacksA pointer to the VmbServerChannelInitSetSaveRestorePacketCallbacks function.
VmbServerChannelInitSetTargetInterfaceIdA pointer to the VmbServerChannelInitSetTargetInterfaceId function.
VmbServerChannelInitSetTargetVtlA pointer to the VmbServerChannelInitSetTargetVtl function.
VmbServerChannelInitSetVmbusHandleA pointer to the VmbServerChannelInitSetVmbusHandle function.
The function pointers in KMCL_SERVER_ONLY_METHODS are called through the VMBus Kernel Mode Client Library (KMCL) interface, provided by the Vmbkmcl.sys bus driver. This structure contains function pointers for server-only functions.
To access both client and server-only functions of the KMCL interface, allocate a KMCL_SERVER_INTERFACE_V1 structure to receive the interface, then call either WdfFdoQueryForInterface or WdfIoTargetQueryForInterface with these parameters:
sizeof(KMCL_SERVER_INTERFACE_V1)The KMCL_SERVER_INTERFACE_V1 structure is defined as follows for C language code:
typedef struct _KMCL_SERVER_INTERFACE_V1 {
KMCL_CLIENT_INTERFACE_V1;
KMCL_SERVER_ONLY_METHODS;
} KMCL_SERVER_INTERFACE_V1, *PKMCL_SERVER_INTERFACE_V1;
If the interface query function succeeds, the KMCL_SERVER_INTERFACE_V1 structure contains both a KMCL_CLIENT_INTERFACE_V1 structure and a KMCL_SERVER_ONLY_METHODS structure. The KMCL_SERVER_ONLY_METHODS structure contains function pointers that you can use to call VMBus KMCL server-only functions.
For KMCL client methods, see the KMCL_CLIENT_INTERFACE_V1 structure.
For more information about driver-defined interfaces, see Using Driver-Defined Interfaces.
Using Driver-Defined Interfaces