vmbuskernelmodeclientlibapi.h 헤더

이 헤더는 네트워크에서 사용됩니다. 자세한 내용은 다음을 참조하세요.

vmbuskernelmodeclientlibapi.h에는 다음 프로그래밍 인터페이스가 포함되어 있습니다.

함수

 
VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT

VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT 함수는 채널의 상태 변경에 사용할 콜백 함수를 저장합니다.

콜백 함수

 
EVT_VMB_CHANNEL_CLOSED

EvtVmbChannelClosed 콜백 함수는 게스트 가상 머신의 클라이언트 엔드포인트가 VmbChannelDisable 함수를 사용하여 채널을 닫거나 반대 엔드포인트가 채널을 철회하거나 닫을 때 호출됩니다.
EVT_VMB_CHANNEL_OPENED

EvtVmbChannelOpened 콜백 함수는 게스트 가상 머신의 클라이언트 엔드포인트가 제공된 채널을 열 때 호출됩니다.
EVT_VMB_CHANNEL_PNP_FAILURE

PnP 디바이스가 있는 경우에도 게스트 가상 머신의 클라이언트 엔드포인트가 비동기적으로 연결되지 않으면 EvtChannelPnpFailure 콜백 함수가 호출됩니다.
EVT_VMB_CHANNEL_POST_STARTED

EvtVmbChannelPostStarted 콜백 함수는 반대 엔드포인트에서 패킷을 받은 후 두 엔드포인트에서 호출됩니다.
EVT_VMB_CHANNEL_PROCESS_PACKET

패킷이 들어오는 링 버퍼에 도착하면 EvtVmbChannelProcessPacket 콜백 함수가 호출됩니다.
EVT_VMB_CHANNEL_PROCESSING_COMPLETE

EvtVmbChannelProcessingComplete 콜백 함수는 후속 패킷을 배달하기 전에 일시 중지가 있는 경우 EvtVmbChannelProcessPacket 함수에서 패킷 그룹을 배달할 때 호출됩니다.
EVT_VMB_CHANNEL_RESTORE_PACKET

VSP(가상화 서비스 공급자) 서버 엔드포인트가 패킷 개체와 연결된 상태를 복원해야 하는 경우 EvtVmbChannelRestorePacket 콜백 함수가 호출됩니다.
EVT_VMB_CHANNEL_SAVE_PACKET

VSP(가상화 서비스 공급자) 엔드포인트가 패킷과 연결된 상태를 저장해야 하는 경우 EvtVmbChannelSavePacket 콜백 함수가 호출됩니다.
EVT_VMB_CHANNEL_STARTED

EvtVmbChannelStarted 콜백 함수는 채널이 완전히 구성되었지만 패킷이 배달되기 전에 두 엔드포인트에서 호출됩니다. 이는 반대 엔드포인트가 채널을 열거나 닫은 후 다시 열 때 발생합니다.
EVT_VMB_CHANNEL_SUSPEND

클라이언트 엔드포인트에서 채널을 닫거나 삭제할 때 EvtVmbChannelSuspend 콜백 함수가 서버 엔드포인트에서 호출되어 서버를 중지됨 상태로 전환합니다.
EVT_VMB_PACKET_COMPLETION_ROUTINE

전송된 패킷과 연결된 트랜잭션이 완료되면 EvtVmbPacketCompletionRoutine 콜백 함수가 호출됩니다.
FN_VMB_CHANNEL_ALLOCATE

VmbChannelAllocate 함수는 기본 매개 변수 및 콜백이 있는 새 VMBus 채널을 할당합니다.
FN_VMB_CHANNEL_CLEANUP

VmbChannelCleanup 함수는 VmbChannelAllocate 함수를 사용하여 할당되었거나 VMBus 채널 초기화 함수를 사용하여 초기화된 채널을 삭제합니다.
FN_VMB_CHANNEL_CREATE_GPADL_FROM_BUFFER

VmbChannelCreateGpadlFromBuffer 함수는 클라이언트 쪽 버퍼를 설명하는 GPADL(게스트 물리적 주소 설명자 목록)을 만듭니다. 서버에서 GPADL을 사용하여 버퍼에 액세스할 수 있습니다.
FN_VMB_CHANNEL_CREATE_GPADL_FROM_MDL

VmbChannelCreateGpadlFromMdl 함수는 클라이언트 쪽 버퍼를 설명하는 GPADL(게스트 물리적 주소 설명자 목록)을 만듭니다. 서버에서 GPADL을 사용하여 버퍼에 액세스할 수 있습니다.
FN_VMB_CHANNEL_DELETE_GPADL

VmbChannelDeleteGpadl 함수는 VmbChannelCreateGpadlFromMdl 또는 VmbChannelCreateGpadlFromBuffer 함수에 의해 매핑된 게스트 GPADL(물리적 주소 설명자 목록)을 삭제합니다.
FN_VMB_CHANNEL_DISABLE

VmbChannelDisable 함수는 채널을 사용하지 않도록 설정하여 클라이언트 채널에 대해 닫고 서버 채널에 대한 채널 제안을 취소합니다. 이 함수는 채널이 반환되기 전에 완전히 분해될 때까지 기다립니다.
FN_VMB_CHANNEL_ENABLE

VmbChannelEnable 함수를 사용하면 VMBus에 연결하고 엔드포인트 유형에 맞게 채널을 제공하거나 열어 비활성화 상태의 채널을 사용할 수 있습니다.
FN_VMB_CHANNEL_GET_INTERFACE_INSTANCE

VmbChannelGetInterfaceInstance 함수는 채널을 고유하게 식별하는 GUID인 활성 인터페이스 instance 가져옵니다.
FN_VMB_CHANNEL_GET_MMIO_SPACE

VmbChannelGetMmioSpace 함수는 채널에 할당된 MMIO 공간의 커널 가상 주소를 검색합니다.
FN_VMB_CHANNEL_GET_POINTER

VmbChannelGetPointer 함수를 사용하면 클라이언트 드라이버가 VmbPacketSetPointer 함수를 사용하여 이전에 저장한 포인터를 검색할 수 있습니다.
FN_VMB_CHANNEL_INIT_SET_CLIENT_CONTEXT_SIZE

VmbChannelInitSetClientContextSize 함수는 들어오는 각 패킷에서 클라이언트 드라이버에 할당된 선택적 컨텍스트 영역의 크기를 설정합니다.
FN_VMB_CHANNEL_INIT_SET_FLAGS

VmbChannelInitSetFlags 함수는 서버 또는 클라이언트 채널 엔드포인트에 공통 플래그를 설정합니다.
FN_VMB_CHANNEL_INIT_SET_FRIENDLY_NAME

VmbChannelInitSetFriendlyName 함수는 KMCL(커널 모드 클라이언트 라이브러리) 채널의 이름을 설정합니다. 식별 이름은 디버깅 및 성능 카운터 instance 명명에 사용됩니다.
FN_VMB_CHANNEL_INIT_SET_MAXIMUM_EXTERNAL_DATA

VmbChannelInitSetMaximumExternalData 함수는 패킷에서 설명하지만 패킷에서 직접 전송되지는 않는 데이터의 최대 크기 및 체인 길이를 설정합니다. 즉, ExternalDataMdl에서 설명하는 버퍼의 최대 크기입니다.
FN_VMB_CHANNEL_INIT_SET_MAXIMUM_PACKET_SIZE

VmbChannelInitSetMaximumPacketSize 함수는 채널을 통해 전달할 수 있는 최대 패킷 크기를 설정합니다. 이 크기는 VmbPacketSend 함수에서 지정한 최대 크기입니다.
FN_VMB_CHANNEL_INIT_SET_PROCESS_PACKET_CALLBACKS

VmbChannelInitSetProcessPacketCallbacks 함수는 패킷 처리를 위한 콜백 함수를 설정합니다.
FN_VMB_CHANNEL_INIT_SET_STATE_CHANGE_CALLBACKS

VmbChannelInitSetStateChangeCallbacks 함수는 상태 변경에 대한 선택적 콜백 함수를 설정합니다.
FN_VMB_CHANNEL_MAP_GPADL

VmbChannelMapGpadl 함수는 GPADL(게스트 물리적 주소 설명자 목록) 번호를 사용하여 클라이언트 쪽 버퍼를 서버 쪽 물리적 주소 공간에 매핑합니다.
FN_VMB_CHANNEL_PACKET_COMPLETE

VmbChannelPacketComplete 함수는 미해결 메모리 매핑을 정리하고, 사용 중인 버퍼를 해제하고, 반대 엔드포인트가 완료 패킷을 요청한 경우 완료 패킷을 보냅니다.
FN_VMB_CHANNEL_PACKET_DEFER_TO_PASSIVE

VmbChannelPacketDeferToPassive 함수는 클라이언트 드라이버가 EvtVmbChannelProcessPacket 콜백 함수에 의해 전달된 패킷을 연기하기 위해 호출됩니다.
FN_VMB_CHANNEL_PACKET_FAIL

VmbChannelPacketFail 함수는 복구할 수 없는 오류로 인해 패킷을 처리하는 동안 패킷에 실패합니다. 이 함수는 큐를 중지합니다.
FN_VMB_CHANNEL_PACKET_GET_EXTERNAL_DATA

VmbChannelPacketGetExternalData 함수는 패킷 처리 중에 패킷과 연결된 모든 외부 MDL(메모리 설명자 목록)을 가져옵니다.
FN_VMB_CHANNEL_PAUSE

VmbChannelPause 함수는 채널을 일시 중지된 상태로 이동하여 새 I/O를 방지합니다.
FN_VMB_CHANNEL_RESTORE_FROM_BUFFER

VmbChannelRestoreFromBuffer 함수는 이전에 저장된 상태에서 클라이언트 상태를 복원합니다. 드라이버는 함수의 반환 값을 검사 합니다.
FN_VMB_CHANNEL_SAVE_BEGIN

VmbChannelSaveBegin 함수는 채널 상태를 저장하기 위한 컨텍스트를 초기화합니다. 드라이버는 함수의 반환 값을 검사 합니다.
FN_VMB_CHANNEL_SAVE_CONTINUE

VmbChannelSaveContinue 함수는 채널 상태를 버퍼에 저장합니다. 이 함수를 실행하기 전에 VmbChannelSaveBegin을 실행합니다. 드라이버는 함수의 반환 값을 검사 합니다.
FN_VMB_CHANNEL_SAVE_END

VmbChannelSaveEnd 함수는 채널의 상태를 저장하기 위해 할당된 모든 리소스를 정리합니다.
FN_VMB_CHANNEL_SEND_SYNCHRONOUS_REQUEST

VmbChannelSendSynchronousRequest 함수는 패킷을 반대 엔드포인트로 보내고 응답을 기다립니다.
FN_VMB_CHANNEL_SET_INCOMING_PROCESSING_AT_PASSIVE

VmbChannelSetIncomingProcessingAtPassive 함수는 채널이 PASSIVE_LEVEL 들어오는 구문 분석 루틴에 필요한 IRQL을 설정합니다.
FN_VMB_CHANNEL_SET_INTERRUPT_LATENCY

게스트 VM이 MNF 인터럽트용 나가는 모니터 대기 시간으로 업데이트됩니다.
FN_VMB_CHANNEL_SET_POINTER

VmbChannelSetPointer 함수는 채널 컨텍스트에 임의의 포인터를 저장합니다.
FN_VMB_CHANNEL_SET_TRANSACTION_QUOTA

VmbChannelSetTransactionQuota 함수는 들어오는 패킷 할당량을 설정합니다.
FN_VMB_CHANNEL_SIZEOF_PACKET

VmbChannelSizeofPacket 함수는 VmbPacketInitialize 함수와 함께 사용되는 버퍼에 필요한 크기를 계산합니다.
FN_VMB_CHANNEL_START

VmbChannelStart 함수는 일시 중지된 상태에서 채널을 이동합니다.
FN_VMB_CHANNEL_UNMAP_GPADL

VmbChannelUnmapGpadl 함수는 VmbChannelMapGpadl 함수를 사용하여 매핑된 게스트 GPADL(실제 주소 설명자 목록)의 매핑을 해제합니다. 이 함수가 호출되기 전에 서버에서 버퍼를 더 이상 사용하지 않아야 합니다.
FN_VMB_CLIENT_CHANNEL_INIT_SET_RING_BUFFER_PAGE_COUNT

VmbClientChannelInitSetRingBufferPageCount 함수는 클라이언트가 들어오고 나가는 링 버퍼에 할당하는 메모리 페이지 수를 설정합니다.
FN_VMB_CLIENT_CHANNEL_INIT_SET_TARGET_PNP

VmbClientChannelInitSetTargetPnp 함수는 인터페이스 유형 및 instance ID별로 클라이언트 채널의 대상을 설정합니다.
FN_VMB_CONVERT_VMBUS_HANDLE_TO_KERNEL_HANDLE

VmbConvertVmbusHandleToKernelHandle 함수는 사용자 모드 VMBus 핸들을 커널 모드 핸들로 변환합니다.
FN_VMB_PACKET_ALLOCATE

VmbPacketAllocate 함수는 채널의 lookaside 목록에서 패킷을 할당합니다.
FN_VMB_PACKET_FREE

VmbPacketFree 함수는 VmbPacketAllocate 함수를 사용하여 할당된 패킷을 해제합니다.
FN_VMB_PACKET_GET_CHANNEL

VmbPacketGetChannel 함수는 VMBus 패킷이 연결된 VMBus 채널을 반환합니다.
FN_VMB_PACKET_GET_POINTER

VmbPacketGetPointer 함수는 이전에 VmbPacketSetPointer 함수를 사용하여 저장한 포인터를 검색합니다.
FN_VMB_PACKET_INITIALIZE

VmbPacketInitialize 함수는 VMBus 패킷을 포함하도록 버퍼를 초기화합니다.
FN_VMB_PACKET_RESTORE

VmbPacketRestore 함수는 저장된 패킷 컨텍스트가 포함된 버퍼에서 패킷을 복원합니다.
FN_VMB_PACKET_SEND

VmbPacketSend 함수는 패킷 버퍼 또는 외부 데이터 MDL(메모리 설명자 목록)의 데이터를 보냅니다. 함수는 해당 데이터를 트랜잭션 수명 동안 패킷을 나타내는 VMBus 패킷 개체와 연결합니다.
FN_VMB_PACKET_SEND_WITH_EXTERNAL_MDL

VmbPacketSendWithExternalMdl 함수는 패킷 버퍼 또는 외부 데이터 MDL(메모리 설명자 목록)에서 데이터를 보냅니다.
FN_VMB_PACKET_SEND_WITH_EXTERNAL_PFNS

VmbPacketSendWithExternalPfns 함수는 패킷 버퍼 또는 외부 데이터의 데이터를 PFN(페이지 프레임 번호) 배열로 보냅니다.
FN_VMB_PACKET_SET_COMPLETION_ROUTINE

VmbPacketSetCompletionRoutine 함수는 패킷 개체의 완료 루틴을 설정합니다.
FN_VMB_PACKET_SET_POINTER

VmbPacketSetPointer 함수는 패킷 컨텍스트에 임의의 포인터를 저장합니다.
FN_VMB_SERVER_CHANNEL_INIT_SET_FLAGS

VmbServerChannelInitSetFlags 함수는 서버 채널 엔드포인트에 고유한 플래그를 설정합니다.
FN_VMB_SERVER_CHANNEL_INIT_SET_MMIO_MEGABYTES

VmbServerChannelInitSetMmioMegabytes 함수는 디바이스에 예약할 게스트 메모리 매핑 I/O(I/O) 공간의 양(메가바이트)을 지정합니다.
FN_VMB_SERVER_CHANNEL_INIT_SET_SAVE_RESTORE_PACKET_CALLBACKS

VmbServerChannelInitSetSaveRestorePacketCallbacks 함수는 드라이버가 VmbChannelSaveBegin, VmbChannelSaveContinue 및 VmbChannelSaveEnd 또는 VmbChannelRestoreFromBuffer 함수와 같은 저장 함수를 호출할 때 각 패킷에 대해 호출되는 저장 및 복원 콜백 함수를 설정합니다.
FN_VMB_SERVER_CHANNEL_INIT_SET_TARGET_INTERFACE_ID

VmbServerChannelInitSetTargetInterfaceId 함수는 채널 제품의 대상 인터페이스 형식 GUID 및 instance GUID를 설정합니다.
FN_VMB_SERVER_CHANNEL_INIT_SET_TARGET_VTL

VmbServerChannelInitSetTargetVtl 함수는 이 채널의 대상 VTL을 설정합니다. 채널은 지정된 VTL에서 실행되는 클라이언트 및 다른 사용자에게 제공되지 않습니다.
FN_VMB_SERVER_CHANNEL_INIT_SET_VMBUS_HANDLE

VmbServerChannelInitSetVmbusHandle 함수는 VMBus의 instance 이 채널과 연결합니다.

구조체

 
KMCL_SERVER_ONLY_METHODS

KMCL_SERVER_ONLY_METHODS 구조에는 VMBus KMCL(커널 모드 클라이언트 라이브러리) 인터페이스에 대한 서버 전용 함수에 대한 함수 포인터가 포함되어 있습니다.
KMCL_SERVER_ONLY_METHODS_V5

KMCL_CLIENT_INTERFACE_V1 구조에는 VMBus KMCL(커널 모드 클라이언트 라이브러리) 인터페이스에 대한 클라이언트 함수에 대한 함수 포인터가 포함되어 있습니다.
VMB_CHANNEL_STATE_CHANGE_CALLBACKS

VMB_CHANNEL_STATE_CHANGE_CALLBACKS 구조에는 채널의 상태 변경 내용과 관련된 콜백 함수가 포함되어 있습니다.