次の方法で共有


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以下で呼び出すことができます。

必要条件

要件 価値
ターゲット プラットフォーム ウィンドウズ
ヘッダー vmbuskernelmodeclientlibapi.h (VmbusKernelModeClientLibApi.h を含む)
IRQL <=DISPATCH_LEVEL

関連項目

VmbChannelInitSetProcessPacketCallbacks

VmbChannelPacketComplete

VmbChannelPacketGetExternalData