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 中的函数指针是通过 VMBus 内核模式客户端库 (KMCL) 接口调用的,由 Vmbkmcl.sys 总线驱动程序提供。 此结构包含仅限服务器函数的函数指针。

若要访问 KMCL 接口的客户端和仅服务器函数,请分配 KMCL_SERVER_INTERFACE_V1 结构以接收接口,然后使用以下参数调用 WdfFdoQueryForInterfaceWdfIoTargetQueryForInterface

  • InterfaceType 参数: KMCL_SERVER_INTERFACE_TYPE
  • Size 参数: sizeof(KMCL_SERVER_INTERFACE_V1)
  • 版本 参数: KMCL_SERVER_INTERFACE_VERSION_V1

C 语言代码 的 KMCL_SERVER_INTERFACE_V1 结构定义如下:

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

另请参阅

使用驱动程序定义的接口

WdfFdoQueryForInterface

WdfIoTargetQueryForInterface

KMCL_CLIENT_INTERFACE_V1