次の方法で共有


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 構造体の メンバーを受信 TRUE に設定されません。

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

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

必要条件

要件 価値
サポートされる最小クライアント Windows 8 以降で使用できます。
ターゲット プラットフォーム の 万国
ヘッダー sercx.h
IRQL <= DISPATCH_LEVEL

関連項目

SERCX_ACTIVITY

SERCX_ACTIVITY_INIT

SerCxCompleteWait

SerCxProgressReceive の

SerCxProgressTransmit を する