KMCL_SERVER_ONLY_METHODS structure (vmbuskernelmodeclientlibapi.h)
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.
Syntax
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;
Members
VmbChannelMapGpadl
A pointer to the VmbChannelMapGpadl function.
VmbChannelRestoreFromBuffer
A pointer to the VmbChannelRestoreFromBuffer function.
VmbChannelSaveBegin
A pointer to the VmbChannelSaveBegin function.
VmbChannelSaveContinue
A pointer to the VmbChannelSaveContinue function.
VmbChannelSaveEnd
A pointer to the VmbChannelSaveEnd function.
VmbChannelUnmapGpadl
A pointer to the VmbChannelUnmapGpadl function.
VmbConvertVmbusHandleToKernelHandle
A pointer to the VmbConvertVmbusHandleToKernelHandle function.
VmbPacketRestore
A pointer to the VmbPacketRestore function.
VmbServerChannelInitSetFlags
A pointer to the VmbServerChannelInitSetFlags function.
VmbServerChannelInitSetMmioMegabytes
A pointer to the VmbServerChannelInitSetMmioMegabytes function.
VmbServerChannelInitSetSaveRestorePacketCallbacks
A pointer to the VmbServerChannelInitSetSaveRestorePacketCallbacks function.
VmbServerChannelInitSetTargetInterfaceId
A pointer to the VmbServerChannelInitSetTargetInterfaceId function.
VmbServerChannelInitSetTargetVtl
A pointer to the VmbServerChannelInitSetTargetVtl function.
VmbServerChannelInitSetVmbusHandle
A pointer to the VmbServerChannelInitSetVmbusHandle function.
Remarks
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:
- InterfaceType parameter: KMCL_SERVER_INTERFACE_TYPE
- Size parameter:
sizeof(KMCL_SERVER_INTERFACE_V1)
- Version parameter: KMCL_SERVER_INTERFACE_VERSION_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.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 10, version 1809 |
Header | vmbuskernelmodeclientlibapi.h |