KMCL_SERVER_ONLY_METHODS_V5結構 (vmbuskernelmodeclientlibapi.h)
KMCL_CLIENT_INTERFACE_V1 結構包含 VMBus 核心模式用戶端連結庫 (KMCL) 介面之用戶端函式的函式指標。
如需如何存取 KMCL 介面的詳細資訊,請參閱一節。
Syntax
typedef struct _KMCL_CLIENT_INTERFACE_V1 {
INTERFACE;
PFN_VMB_CHANNEL_ALLOCATE VmbChannelAllocate;
PFN_VMB_CHANNEL_CLEANUP VmbChannelCleanup;
PFN_VMB_CHANNEL_CREATE_GPADL_FROM_BUFFER VmbChannelCreateGpadlFromBuffer;
PFN_VMB_CHANNEL_CREATE_GPADL_FROM_MDL VmbChannelCreateGpadlFromMdl;
PFN_VMB_CHANNEL_DELETE_GPADL VmbChannelDeleteGpadl;
PFN_VMB_CHANNEL_DISABLE VmbChannelDisable;
PFN_VMB_CHANNEL_ENABLE VmbChannelEnable;
PFN_VMB_CHANNEL_GET_INTERFACE_INSTANCE VmbChannelGetInterfaceInstance;
PFN_VMB_CHANNEL_GET_MMIO_SPACE VmbChannelGetMmioSpace;
PFN_VMB_CHANNEL_GET_POINTER VmbChannelGetPointer;
PFN_VMB_CHANNEL_INIT_SET_CLIENT_CONTEXT_SIZE VmbChannelInitSetClientContextSize;
PFN_VMB_CHANNEL_INIT_SET_FLAGS VmbChannelInitSetFlags;
PFN_VMB_CHANNEL_INIT_SET_FRIENDLY_NAME VmbChannelInitSetFriendlyName;
PFN_VMB_CHANNEL_INIT_SET_MAXIMUM_EXTERNAL_DATA VmbChannelInitSetMaximumExternalData;
PFN_VMB_CHANNEL_INIT_SET_MAXIMUM_PACKET_SIZE VmbChannelInitSetMaximumPacketSize;
PFN_VMB_CHANNEL_INIT_SET_PROCESS_PACKET_CALLBACKS VmbChannelInitSetProcessPacketCallbacks;
PFN_VMB_CHANNEL_INIT_SET_STATE_CHANGE_CALLBACKS VmbChannelInitSetStateChangeCallbacks;
PFN_VMB_CHANNEL_PACKET_COMPLETE VmbChannelPacketComplete;
PFN_VMB_CHANNEL_PACKET_DEFER_TO_PASSIVE VmbChannelPacketDeferToPassive;
PFN_VMB_CHANNEL_PACKET_FAIL VmbChannelPacketFail;
PFN_VMB_CHANNEL_PACKET_GET_EXTERNAL_DATA VmbChannelPacketGetExternalData;
PFN_VMB_CHANNEL_PAUSE VmbChannelPause;
PFN_VMB_CHANNEL_SEND_SYNCHRONOUS_REQUEST VmbChannelSendSynchronousRequest;
PFN_VMB_CHANNEL_SET_INCOMING_PROCESSING_AT_PASSIVE VmbChannelSetIncomingProcessingAtPassive;
PFN_VMB_CHANNEL_SET_INTERRUPT_LATENCY VmbChannelSetInterruptLatency;
PFN_VMB_CHANNEL_SET_POINTER VmbChannelSetPointer;
PFN_VMB_CHANNEL_SET_TRANSACTION_QUOTA VmbChannelSetTransactionQuota;
PFN_VMB_CHANNEL_SIZEOF_PACKET VmbChannelSizeofPacket;
PFN_VMB_CHANNEL_START VmbChannelStart;
PFN_VMB_CLIENT_CHANNEL_INIT_SET_RING_BUFFER_PAGE_COUNT VmbClientChannelInitSetRingBufferPageCount;
PFN_VMB_CLIENT_CHANNEL_INIT_SET_TARGET_PNP VmbClientChannelInitSetTargetPnp;
PFN_VMB_PACKET_ALLOCATE VmbPacketAllocate;
PFN_VMB_PACKET_FREE VmbPacketFree;
PFN_VMB_PACKET_GET_CHANNEL VmbPacketGetChannel;
PFN_VMB_PACKET_GET_POINTER VmbPacketGetPointer;
PFN_VMB_PACKET_INITIALIZE VmbPacketInitialize;
PFN_VMB_PACKET_SEND VmbPacketSend;
PFN_VMB_PACKET_SEND_WITH_EXTERNAL_MDL VmbPacketSendWithExternalMdl;
PFN_VMB_PACKET_SEND_WITH_EXTERNAL_PFNS VmbPacketSendWithExternalPfns;
PFN_VMB_PACKET_SET_COMPLETION_ROUTINE VmbPacketSetCompletionRoutine;
PFN_VMB_PACKET_SET_POINTER VmbPacketSetPointer;
} KMCL_CLIENT_INTERFACE_V1, *PKMCL_CLIENT_INTERFACE_V1;
繼承
KMCL_SERVER_ONLY_METHODS_V5結構會實作KMCL_SERVER_ONLY_METHODS。
成員
_KMCL_SERVER_ONLY_METHODS_V5
_KMCL_SERVER_ONLY_METHODS_V5.VmbServerChannelInitSetSaveRestorePacketCallbacksEx
C_ASSERT
KMCL_CLIENT_INTERFACE_TYPE
_KMCL_CLIENT_INTERFACE_V1
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelAllocate
VmbChannelAllocate 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelCleanup
VmbChannelCleanup 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelCreateGpadlFromBuffer
VmbChannelCreateGpadlFromBuffer 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelCreateGpadlFromMdl
VmbChannelCreateGpadlFromMdl 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelDeleteGpadl
VmbChannelDeleteGpadl 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelDisable
VmbChannelDisable 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelEnable
VmbChannelEnable 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelGetInterfaceInstance
VmbChannelGetInterfaceInstance 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelGetMmioSpace
VmbChannelGetMmioSpace 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelGetPointer
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelInitSetClientContextSize
VmbChannelInitSetClientContextSize 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelInitSetFlags
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelInitSetFriendlyName
VmbChannelInitSetFriendlyName 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelInitSetMaximumExternalData
VmbChannelInitSetMaximumExternalData 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelInitSetMaximumPacketSize
VmbChannelInitSetMaximumPacketSize 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelInitSetProcessPacketCallbacks
VmbChannelInitSetProcessPacketCallbacks 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelInitSetStateChangeCallbacks
VmbChannelInitSetStateChangeCallbacks 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelPacketComplete
VmbChannelPacketComplete 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelPacketDeferToPassive
VmbChannelPacketDeferToPassive 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelPacketFail
VmbChannelPacketFail 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelPacketGetExternalData
VmbChannelPacketGetExternalData 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelPause
VmbChannelPause 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelSendSynchronousRequest
VmbChannelPause 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelSetIncomingProcessingAtPassive
VmbChannelSetIncomingProcessingAtPassive 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelSetInterruptLatency
VmbChannelSetInterruptLatency 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelSetPointer
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelSetTransactionQuota
VmbChannelSetTransactionQuota 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelSizeofPacket
VmbChannelSizeofPacket 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbChannelStart
VmbChannelStart 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbClientChannelInitSetRingBufferPageCount
VmbClientChannelInitSetRingBufferPageCount 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbClientChannelInitSetTargetPnp
VmbClientChannelInitSetTargetPnp 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbPacketAllocate
VmbPacketAllocate 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbPacketFree
VmbPacketFree 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbPacketGetChannel
VmbPacketGetChannel 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbPacketGetPointer
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbPacketInitialize
VmbPacketInitialize 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbPacketSend
VmbPacketSend 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbPacketSendWithExternalMdl
VmbPacketSendWithExternalMdl 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbPacketSendWithExternalPfns
VmbPacketSendWithExternalPfns 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbPacketSetCompletionRoutine
VmbPacketSetCompletionRoutine 函式的指標。
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V1.VmbPacketSetPointer
_KMCL_CLIENT_INTERFACE_V1.C_ASSERT
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V2
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V2.VmbChannelPacketGetClientContext
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V2.VmbChannelGetTargetDeviceObject
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V2.VmbChannelGetParentDeviceObject
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2.C_ASSERT
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V3
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V3.VmbChannelInitSetBounceBufferSizes
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V3.VmbChannelAllocateBounceBuffer
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3.C_ASSERT
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V4
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V4._KMCL_CLIENT_INTERFACE_V4
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V4._KMCL_CLIENT_INTERFACE_V4.VmbChannelInitSetMaximumPacketCount
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V4._KMCL_CLIENT_INTERFACE_V4.VmbChannelCreateGpadlFromPfnList
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V4.C_ASSERT
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V4._KMCL_CLIENT_INTERFACE_V5
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V4._KMCL_CLIENT_INTERFACE_V5._KMCL_CLIENT_INTERFACE_V5
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V4._KMCL_CLIENT_INTERFACE_V5._KMCL_CLIENT_INTERFACE_V5.VmbChannelInitSetPrimaryChannel
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V4._KMCL_CLIENT_INTERFACE_V5._KMCL_CLIENT_INTERFACE_V5.VmbChannelInitialize
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V4._KMCL_CLIENT_INTERFACE_V5._KMCL_CLIENT_INTERFACE_V5.VmbChannelSetAllowableDpcCpuUsage
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V4._KMCL_CLIENT_INTERFACE_V5._KMCL_CLIENT_INTERFACE_V5.VmbClientChannelInitSetTargetProcessorIndex
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V4._KMCL_CLIENT_INTERFACE_V5._KMCL_CLIENT_INTERFACE_V5.VmbSizeofChannel
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V4._KMCL_CLIENT_INTERFACE_V5._KMCL_CLIENT_INTERFACE_V5.VmbChannelInitSetInlinePacketContextSize
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V4._KMCL_CLIENT_INTERFACE_V5._KMCL_CLIENT_INTERFACE_V5.VmbPacketGetInlinePacketContextPointer
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V4._KMCL_CLIENT_INTERFACE_V5._KMCL_CLIENT_INTERFACE_V5.VmbChannelInitSetProcessPacketCallbacksEx
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V4._KMCL_CLIENT_INTERFACE_V5._KMCL_CLIENT_INTERFACE_V5.VmbPacketSetCompletionRoutineEx
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V4._KMCL_CLIENT_INTERFACE_V5.C_ASSERT
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V4._KMCL_CLIENT_INTERFACE_V5.KMCL_SERVER_INTERFACE_TYPE
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V4._KMCL_CLIENT_INTERFACE_V5._KMCL_SERVER_INTERFACE_V1
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V4._KMCL_CLIENT_INTERFACE_V5._KMCL_SERVER_INTERFACE_V1._KMCL_SERVER_INTERFACE_V1
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V4._KMCL_CLIENT_INTERFACE_V5._KMCL_SERVER_INTERFACE_V1.C_ASSERT
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V4._KMCL_CLIENT_INTERFACE_V5._KMCL_SERVER_INTERFACE_V1._KMCL_SERVER_INTERFACE_V5
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V4._KMCL_CLIENT_INTERFACE_V5._KMCL_SERVER_INTERFACE_V1._KMCL_SERVER_INTERFACE_V5._KMCL_SERVER_INTERFACE_V5
_KMCL_CLIENT_INTERFACE_V1._KMCL_CLIENT_INTERFACE_V2._KMCL_CLIENT_INTERFACE_V3._KMCL_CLIENT_INTERFACE_V4._KMCL_CLIENT_INTERFACE_V5._KMCL_SERVER_INTERFACE_V1._KMCL_SERVER_INTERFACE_V5.C_ASSERT
備註
這個結構的第一個成員是 一個 INTERFACE 結構,描述 Vmbuskmcl.sys 總線驅動程式所導出的 KMCL 介面。
KMCL_CLIENT_INTERFACE_V1中的函式指標是透過 VMBus 核心模式用戶端連結庫 (KMCL) 介面呼叫,由 Vmbkmcl.sys 總線驅動程式提供。 此結構包含用戶端函式的函式指標。
若要存取 KMCL 介面的用戶端函式,請配置 KMCL_CLIENT_INTERFACE_V1 結構來接收介面,然後使用下列參數呼叫 WdfFdoQueryForInterface 或 WdfIoTargetQueryForInterface :
- InterfaceType 參數: KMCL_CLIENT_INTERFACE_TYPE
- 大小 參數:
sizeof(KMCL_CLIENT_INTERFACE_V1)
- 版本 參數: KMCL_CLIENT_INTERFACE_VERSION_V1
如果介面查詢函式成功, KMCL_CLIENT_INTERFACE_V1 結構會包含可用來呼叫 VMBus KMCL 用戶端函式的函式指標。
如需僅限伺服器的方法,請參閱 KMCL_SERVER_ONLY_METHODS 結構。
如需驅動程式定義介面的詳細資訊,請參閱 使用 Driver-Defined 介面。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 (版本 1803) |
標頭 | vmbuskernelmodeclientlibapi.h |