Share via


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 버스 드라이버에서 제공하는 KMCL(VMBus 커널 모드 클라이언트 라이브러리) 인터페이스를 통해 호출됩니다. 이 구조체에는 서버 전용 함수에 대한 함수 포인터가 포함되어 있습니다.

KMCL 인터페이스의 클라이언트 및 서버 전용 함수에 모두 액세스하려면 인터페이스를 수신할 KMCL_SERVER_INTERFACE_V1 구조를 할당한 다음, 다음 매개 변수를 사용하여 WdfFdoQueryForInterface 또는 WdfIoTargetQueryForInterface 를 호출합니다.

  • InterfaceType 매개 변수: KMCL_SERVER_INTERFACE_TYPE
  • 크기 매개 변수: 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 구조에는 VMBus KMCL 서버 전용 함수를 호출하는 데 사용할 수 있는 함수 포인터가 포함되어 있습니다.

KMCL 클라이언트 메서드는 KMCL_CLIENT_INTERFACE_V1 구조를 참조하세요.

드라이버 정의 인터페이스에 대한 자세한 내용은 Driver-Defined 인터페이스 사용을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10, 버전 1809
머리글 vmbuskernelmodeclientlibapi.h

추가 정보

Driver-Defined 인터페이스 사용

WdfFdoQueryForInterface

WdfIoTargetQueryForInterface

KMCL_CLIENT_INTERFACE_V1