共用方式為


FN_VMB_CHANNEL_SEND_SYNCHRONOUS_REQUEST回呼函式 (vmbuskernelmodeclientlibapi.h)

[某些資訊與發行前的產品有關,在正式發行前可能會大幅修改。 Microsoft未就此處提供的資訊提供任何明示或默示擔保。

VmbChannelSendSynchronousRequest 函式會將封包傳送至相反的端點,並等候回應。

語法

FN_VMB_CHANNEL_SEND_SYNCHRONOUS_REQUEST FnVmbChannelSendSynchronousRequest;

NTSTATUS FnVmbChannelSendSynchronousRequest(
  VMBCHANNEL Channel,
  PVOID Buffer,
  UINT32 BufferSize,
  PMDL ExternalDataMdl,
  UINT32 Flags,
  PVOID CompletionBuffer,
  PUINT32 CompletionBufferSize,
  PLARGE_INTEGER Timeout
)
{...}

參數

Channel

通道的句柄。

Buffer

要傳送的數據。

BufferSize

要傳送的數據大小,以位元組為單位。

ExternalDataMdl

描述要傳送之額外緩衝區的記憶體描述元清單 (MDL)。

Flags

標準旗標。

CompletionBuffer

用來儲存完成封包結果的緩衝區。

CompletionBufferSize

CompletionBuffer 值的大小,以位元組為單位。 此值必須四捨五入到最接近的8個字節,否則函式會失敗。 成功時,會傳回寫入到 CompletionBuffer的位元元組數目。

Timeout

KeWaitForSingleObject 路由樣式的逾時。 經過這個時間之後,封包就會取消。 若逾時為零 (0),如果封包在通道緩衝區中沒有 fir,則不會排入佇列。

傳回值

傳回碼 描述
STATUS_SUCCESS
函式成功完成。
STATUS_BUFFER_OVERFLOW
封包不符合緩衝區,且未排入佇列。
STATUS_CANCELLED
封包已取消。
STATUS_DEVICE_REMOVED
通道正在關閉。

言論

用戶端可以使用任何參數組合來執行此函式。

根目錄只有在未設定 *Timeout == 0 且未設定 VMBUS_CHANNEL_FORMAT_FLAG_WAIT_FOR_COMPLETION 旗標時,才能呼叫這個 。

重要

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

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

要求

要求 價值
最低支援的用戶端 Windows 10 版本 1803
標頭 vmbuskernelmodeclientlibapi.h

另請參閱

KeWaitForSingleObject