Share via


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) の場合、パケットがリング バッファー内でモミリングされない場合、パケットはキューに入れられません。

戻り値

リターン コード 説明
STATUS_SUCCESS
関数は正常に完了しました。
STATUS_BUFFER_OVERFLOW
パケットがバッファーに収まらず、キューに入れられませんでした。
STATUS_CANCELLED
パケットが取り消されました。
STATUS_DEVICE_REMOVED
チャネルがシャットダウンされています。

注釈

クライアントは、パラメーターの任意の組み合わせでこの関数を実行できます。

ルートは、VMBUS_CHANNEL_FORMAT_FLAG_WAIT_FOR_COMPLETION フラグが設定されていない場合*Timeout == 0にのみこれを呼び出します。

重要

この関数は、Vmbkmcl.sys バス ドライバーによって提供される VMBus カーネル モード クライアント ライブラリ (KMCL) インターフェイスを介して呼び出されます。 これは、 KMCL_CLIENT_INTERFACE_V1 構造体からアクセスされるクライアント関数です。

詳細については、 KMCL_CLIENT_INTERFACE_V1の「解説」セクションを参照してください。

要件

要件
サポートされている最小のクライアント Windows 10 バージョン 1803
Header vmbuskernelmodeclientlibapi.h

こちらもご覧ください

KeWaitForSingleObject