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 |