IoInitializeTimer 関数 (wdm.h)
IoInitializeTimer ルーチンは、特定のデバイス オブジェクトに関連付けられているドライバー提供の IoTimer ルーチンを設定します。
構文
NTSTATUS IoInitializeTimer(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIO_TIMER_ROUTINE TimerRoutine,
[in, optional] __drv_aliasesMem PVOID Context
);
パラメーター
[in] DeviceObject
I/O 操作がタイムアウトできるデバイスを表すデバイス オブジェクトへのポインター。
[in] TimerRoutine
ドライバーが提供する IoTimer ルーチンへのポインター。
[in, optional] Context
IoTimer ルーチンが呼び出されるドライバーによって決定されたコンテキストへのポインター。
戻り値
IoInitializeTimer は、 IoTimer ルーチンが設定されている場合にSTATUS_SUCCESSを返します。
注釈
IoInitializeTimer は、デバイス オブジェクトごとに 1 回だけ呼び出す必要があります。
ドライバーの IoTimer ルーチンは、ドライバーが IoStartTimer を呼び出してタイマーを有効にした後、1 秒に 1 回呼び出されます。 ドライバーは、 IoStopTimer を呼び出すことによってタイマーを無効にすることができ、 IoStartTimer を使用して再度有効にすることができます。
ドライバーの IoTimer ルーチンは IRQL = DISPATCH_LEVELで呼び出されるため、ページング可能なコードを含めてはなりません。
タイマーが実行中の場合、I/O マネージャーは、ドライバーが提供する IoTimer ルーチンを 1 秒に 1 回呼び出します。 タイムアウト ルーチンを可変間隔または細分性の間隔で呼び出す必要があるドライバーは、 CustomTimerDpc ルーチンを 設定し、 KeXxxタイマー ルーチンを 使用できます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 | HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm) |