次の方法で共有


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 コールバック関数へのキューに登録されたすべての呼び出しが実行されるまでフレームワークが返されないことを指定するブール値です。

戻り値

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

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

備考

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

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

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

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

注意

同じタイマー オブジェクト WdfTimerStop の同時呼び出しは、検証ツールが有効になっている場合にデバッガーに中断されます。 詳細については、「KMDF Verifierの使用 」を参照してください。

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

WdfTimerStop(
             timerHandle,
             TRUE
             );

必要条件

要件 価値
ターゲット プラットフォーム の 万国
最小 KMDF バージョン 1.0
UMDF の最小バージョン を する 2.0
ヘッダー wdftimer.h (Wdf.h を含む)
ライブラリ Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF)
IRQL 「解説」セクションを参照してください。
DDI コンプライアンス規則 を する DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

関連項目

EvtTimerFunc の

WdfTimerCreate

WdfTimerStart