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) の場合、パケットがリング バッファーに入っていない場合、キューに入れられません。
戻り値
リターン コード | 形容 |
---|---|
|
関数は正常に終了しました。 |
|
パケットがバッファーに収まらず、キューに入れられませんでした。 |
|
パケットが取り消されました。 |
|
チャネルがシャットダウン中です。 |
備考
クライアントは、パラメーターの任意の組み合わせでこの関数を実行できます。
ルートは、*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 を する