Поделиться через


структура KMCL_SERVER_ONLY_METHODS (vmbuskernelmodeclientlibapi.h)

Структура KMCL_SERVER_ONLY_METHODS содержит указатели функций только для серверных функций для интерфейса клиентской библиотеки (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 для получения интерфейса, а затем вызовите WdfFdoQueryForInterface или WdfIoTargetQueryForInterface с помощью следующих параметров:

  • Параметр InterfaceType : KMCL_SERVER_INTERFACE_TYPE
  • Параметр Size : sizeof(KMCL_SERVER_INTERFACE_V1)
  • Параметр версии : 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 содержит указатели функций, которые можно использовать для вызова функций KMCL vmBus только для сервера.

Сведения о методах клиента KMCL см. в разделе структура KMCL_CLIENT_INTERFACE_V1 .

Дополнительные сведения об интерфейсах, определяемых драйвером, см. в разделе Использование интерфейсов Driver-Defined.

Требования

Требование Значение
Минимальная версия клиента Windows 10, версия 1809
Верхняя часть vmbuskernelmodeclientlibapi.h

См. также раздел

Использование интерфейсов Driver-Defined

WdfFdoQueryForInterface

WdfIoTargetQueryForInterface

KMCL_CLIENT_INTERFACE_V1