SerCxGetActivity 関数 (sercx.h)

SerCxGetActivity メソッドは、シリアル コントローラー ドライバーの保留中の作業の状態を取得します。

構文

void SerCxGetActivity(
  [in]      WDFDEVICE       Device,
  [in, out] PSERCX_ACTIVITY Activity
);

パラメーター

[in] Device

シリアル コントローラーを表すフレームワーク デバイス オブジェクトへの WDFDEVICE ハンドル。

[in, out] Activity

呼び出し元によって割り当てられた SERCX_ACTIVITY 構造体へのポインター。 呼び出し元は、最初に使用する前に、この構造体を初期化するために 、以前に SERCX_ACTIVITY_INIT 関数を呼び出しておく必要があります。 その後、各 SerCxGetActivity 呼び出しは、コントローラー ドライバーによって処理される準備ができている作業項目を追跡するために、この構造体の内容を更新します。

戻り値

なし

解説

シリアル コントローラー ドライバーは、シリアル フレームワーク拡張機能 (SerCx) の代わりに実行する必要がある処理作業の概要を受け取るために、このメソッドを呼び出します。 通常、 SerCxGetActivity は、コントローラー ドライバーの送受信 DPC ルーチンによって呼び出されます。

Activity パラメーターは、コントローラー ドライバーの保留中の作業を説明するSERCX_ACTIVITY構造体を指します。 SerCx がコントローラー ドライバーに割り当てる保留中の作業は、クライアントからの I/O 要求によって駆動されますが、I/O 要求は必ずしも作業項目を生成するとは限りません。 たとえば、SerCx のメモリ バッファーに、保留中の読み取り要求を完了するのに十分な量の受信データがある場合、この要求によって、SERCX_ACTIVITY構造体の Receiving メンバーが TRUE に設定されることはありません。

保留中の作業項目を順番に切り替えるために、送受信 DPC ルーチンは SerCxGetActivity を呼び出し、完全な送受信操作を処理してから、 SerCxGetActivity をもう一度呼び出して、別の種類の別の操作で作業が必要かどうかを判断します。 別の操作で作業が必要な場合、この作業は同じコールバック中に開始される可能性がありますが、 SerCxProgressReceive または SerCxProgressTransmit への呼び出しからの戻り値が、後で実行するように DPC ルーチンに再スケジュールするように指示した場合は停止する必要があります。

ロックは、SerCxGetActivity 呼び出しによって更新されるSERCX_ACTIVITY構造体を保護します。 呼び出し中に、このロックは SerCx のイベント ハンドラーによって取得され、コントローラー ドライバーに対して現在保留中の作業の概要を更新します。

要件

要件
サポートされている最小のクライアント Windows 8 以降で使用できます。
対象プラットフォーム ユニバーサル
Header sercx.h
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

SERCX_ACTIVITY

SERCX_ACTIVITY_INIT

SerCxCompleteWait

SerCxProgressReceive

SerCxProgressTransmit