次の方法で共有


EVT_VMB_CHANNEL_PROCESS_PACKET コールバック関数 (vmbuskernelmodeclientlibapi.h)

[一部の情報はリリース前の製品に関することであり、正式版がリリースされるまでに大幅に変更される可能性があります。 ここに記載された情報について、Microsoft は明示または黙示を問わずいかなる保証をするものでもありません。]

EvtVmbChannelProcessPacket コールバック関数は、パケットが着信リング バッファーに到着したときに呼び出されます。

構文

EVT_VMB_CHANNEL_PROCESS_PACKET EvtVmbChannelProcessPacket;

void EvtVmbChannelProcessPacket(
  [in] VMBCHANNEL Channel,
  [in] VMBPACKETCOMPLETION Packet,
  [in] PVOID Buffer,
  [in] UINT32 BufferLength,
  [in] UINT32 Flags
)
{...}

パラメーター

[in] Channel

パケットが到着するチャネル。

[in] Packet

完了コンテキスト。トランザクションを廃止できる場合に、カーネル モード クライアント ライブラリ (KMCL) へのこのパケットを識別します。

[in] Buffer

反対のエンドポイントによって送信されたパケット。 この値には、VMBus ヘッダーと KMCL ヘッダーは含まれません。

[in] BufferLength

Buffer パラメーターの長さ (バイト単位)。

[in] Flags

フラグ。 次の値があります。

意味
VMBUS_CHANNEL_PROCESS_PACKET_FLAGS
0x1
パケットは外部データを参照します。 このデータは、 VmbChannelPacketGetExternalData 関数を使用して取得できます。

戻り値

なし

解説

クライアント ドライバーは、 VmbChannelInitSetProcessPacketCallbacks 関数を使用して、このコールバック関数の実装を登録します。

この関数を呼び出すたびに、最終的に VmbChannelPacketComplete 関数を呼び出す必要があります。

このコールバック関数は、パケット処理をワーカー スレッドに延期するようにチャネルが構成されていない限り、DISPATCH_LEVEL以下で呼び出すことができます。

要件

要件
対象プラットフォーム Windows
ヘッダー vmbuskernelmodeclientlibapi.h (VmbusKernelModeClientLibApi.h を含む)
IRQL <=DISPATCH_LEVEL

こちらもご覧ください

VmbChannelInitSetProcessPacketCallbacks

VmbChannelPacketComplete

VmbChannelPacketGetExternalData