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