共用方式為


FN_VMB_PACKET_SEND_WITH_EXTERNAL_PFNS回呼函式 (vmbuskernelmodeclientlibapi.h)

[某些資訊與發行前發行的產品有關,在正式發行前可能會大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。]

VmbPacketSendWithExternalPfns 函式會將封包緩衝區或外部數據中的數據當做頁面框架號碼數位傳送 (PFN) 。 函式會將該數據與 VMBus 封包對象產生關聯,代表整個交易存留期的封包。

語法

FN_VMB_PACKET_SEND_WITH_EXTERNAL_PFNS FnVmbPacketSendWithExternalPfns;

NTSTATUS FnVmbPacketSendWithExternalPfns(
  __drv_aliasesMem VMBPACKET PacketObject,
  PVOID Buffer,
  UINT32 BufferLength,
  PPFN_NUMBER ExternalDataPfns,
  UINT32 PfnLength,
  UINT32 Flags
)
{...}

參數

PacketObject

VMBus 封包物件的句柄。

Buffer

緩衝區,包含透過 VMBus 通道緩衝區傳送的命令封包。

BufferLength

Buffer 參數中緩衝區的長度,以位元組為單位。

ExternalDataPfns

頁面框架編號的陣列,描述與封包相關聯的數據緩衝區。

PfnLength

要從 ExternalDataPfns 傳送的 PFN 數目。 最後參考的陣列索引包含 ExternalDataPfns[PfnOffset+PfnLength-1]

Flags

標誌。 以下是相關的旗標:

意義
VMBUS_CHANNEL_FORMAT_FLAG_WAIT_FOR_COMPLETION
此封包無法視為完成,而且在完成封包從相反端點返回之前,無法釋放其資源。 必須設定此旗標。
VMBUS_CHANNEL_FORMAT_FLAG_PAGED_BUFFER
內嵌緩衝區已分頁,而且必須據以處理,這表示必須在輸入 DPC 層級之前加以複製。 探查使用者模式緩衝區或處理存取違規是呼叫者的責任。

傳回值

如果作業成功,則傳回STATUS_SUCCESS,否則傳回適當的NTSTATUS錯誤碼。

備註

此函式與 VmbPacketSend 函式不同,它允許傳遞有效實體位址的 PFN 陣列。

重要

此函式是透過 VMBus 核心模式用戶端連結庫 (KMCL) 介面呼叫,由 Vmbkmcl.sys 總線驅動程式提供。 這是從 KMCL_CLIENT_INTERFACE_V1 結構存取的用戶端函式。

如需詳細資訊,請參閱 KMCL_CLIENT_INTERFACE_V1的一節。

規格需求

需求
最低支援的用戶端 Windows 10 (版本 1803)
標頭 vmbuskernelmodeclientlibapi.h

另請參閱

VmbPacketSend