次の方法で共有


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
チャネルがシャットダウン中です。

備考

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

ルートは、*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 する