vmbuskernelmodeclientlibapi.h 標頭
網路會使用此標頭。 如需詳細資訊,請參閱
vmbuskernelmodeclientlibapi.h 包含下列程式設計介面:
函式
VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT函式會儲存回呼函式,以用於通道的狀態變更。 |
回呼函式
EVT_VMB_CHANNEL_CLOSED 當客體虛擬機器中的用戶端端點使用 VmbChannelDisable 函式關閉通道,或相反的端點會撤銷或關閉通道時,會叫用 EvtVmbChannelClosed 回呼函式。 |
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 函式會刪除客體實體位址描述元清單 (GPADL) 由 VmbChannelCreateGpadlFromMdl 或 VmbChannelCreateGpadlFromBuffer 函式所對應的 GPADL。 |
FN_VMB_CHANNEL_DISABLE VmbChannelDisable 函式會停用通道,這會關閉用戶端通道的通道,並撤銷伺服器通道的通道供應專案。 此函式會等到通道在傳回之前完全損毀為止。 |
FN_VMB_CHANNEL_ENABLE VmbChannelEnable 函式會連線至 VMBus 並針對端點類型提供或開啟通道,啟用處於停用狀態的通道。 |
FN_VMB_CHANNEL_GET_INTERFACE_INSTANCE VmbChannelGetInterfaceInstance 函式會取得作用中的介面實例,這是可唯一識別通道的 GUID。 |
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) 通道。 易記名稱用於偵錯和效能計數器實例命名。 |
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 函式會在封包處理期間取得任何外部記憶體描述項清單 (MDLs) 。 |
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 函式會將通道傳入剖析常式所需的 IRQL 設定為PASSIVE_LEVEL。 |
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 函式會取消對應客體實體位址描述元清單, (GPADL) 由 VmbChannelMapGpadl 函式所對應。 呼叫此函式之前,伺服器不得再使用緩衝區。 |
FN_VMB_CLIENT_CHANNEL_INIT_SET_RING_BUFFER_PAGE_COUNT VmbClientChannelInitSetRingBufferPageCount 函式會設定用戶端配置給傳入和傳出通道緩衝區的記憶體頁數。 |
FN_VMB_CLIENT_CHANNEL_INIT_SET_TARGET_PNP VmbClientChannelInitSetTargetPnp 函式會依介面類別型和實例識別碼來設定用戶端通道的目標。 |
FN_VMB_CONVERT_VMBUS_HANDLE_TO_KERNEL_HANDLE VmbConvertVmbusHandleToKernelHandle 函式會將使用者模式 VMBus 控制碼轉換為核心模式控制碼。 |
FN_VMB_PACKET_ALLOCATE VmbPacketAllocate 函式會從通道的外觀清單中配置封包。 |
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 的數量, (MMIO) 空間來保留給裝置。 |
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 和實例 GUID。 |
FN_VMB_SERVER_CHANNEL_INIT_SET_TARGET_VTL VmbServerChannelInitSetTargetVtl 函式會設定此通道的目標 VTL。 通道將會提供給在指定 VTL 中執行的用戶端,且不會提供其他通道。 |
FN_VMB_SERVER_CHANNEL_INIT_SET_VMBUS_HANDLE VmbServerChannelInitSetVmbusHandle 函式會將 VMBus 的實例與此通道產生關聯。 |
結構
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結構包含與通道狀態變更相關的回呼函式。 |