WdfTimerStop 関数 (wdftimer.h)

[KMDF と UMDF に適用]

WdfTimerStop メソッドは、タイマーのクロックを停止します。

構文

BOOLEAN WdfTimerStop(
  [in] WDFTIMER Timer,
  [in] BOOLEAN  Wait
);

パラメーター

[in] Timer

WdfTimerCreate を呼び出すことによって取得されたフレームワーク タイマー オブジェクトへのハンドル。

[in] Wait

Kmdf TRUE の場合、ドライバーの EvtTimerFunc コールバック関数を含む、ドライバーの遅延プロシージャ呼び出し (DPC) のキューに登録されているすべての呼び出しが実行されるまで、フレームワークが返されないことを指定するブール値。

Umdf TRUE の場合、タイマーの EvtTimerFunc コールバック関数に対するすべてのキューに登録された呼び出しが実行されるまでフレームワークが返されないことを指定するブール値。

戻り値

タイマー オブジェクトがシステムのタイマー キューにある場合、WdfTimerStopTRUE を返します。 それ以外の場合、このメソッドは FALSE を返します。 詳細については、「解説」を参照してください。

ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。

注釈

ドライバーが WdfTimerStart を呼び出すと、そのタイマー オブジェクトがシステムのタイマー オブジェクトのキューに追加されます。 タイマーが定期的なタイマーでない場合、システムはタイマーの "期限" が経過した後、タイマー オブジェクトをキューから削除します。 タイマーが定期的なタイマーの場合、ドライバーが WdfTimerStop を呼び出すまで、タイマー オブジェクトはキューに残ります。

フレームワーク タイマー オブジェクトの詳細については、「タイマーの 使用」を参照してください。

Wait パラメーターが TRUE の場合、IRQL = PASSIVE_LEVEL で WdfTimerStop を呼び出す必要があります。 それ以外の場合は、IRQL <= DISPATCH_LEVELでこのメソッドを呼び出す必要があります。

Wait パラメーターを TRUE に設定して、EvtTimerFunc 内から WdfTimerStop を呼び出さないでください。 これを行うと、デッドロックが発生する可能性があります。

次のコード例では、指定したタイマーを停止し、ドライバーのキューに登録されているすべての DPC が実行されるまで待機します。

WdfTimerStop(
             timerHandle,
             TRUE
             );

要件

要件
対象プラットフォーム ユニバーサル
最小 KMDF バージョン 1.0
最小 UMDF バージョン 2.0
Header wdftimer.h (Wdf.h を含む)
Library Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF)
IRQL 「解説」を参照してください。
DDI コンプライアンス規則 DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

こちらもご覧ください

EvtTimerFunc

WdfTimerCreate

WdfTimerStart