次の方法で共有


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 マネージャーは、1 秒に 1 回、ドライバーから提供された IoTimer ルーチンを呼び出します。 タイムアウト ルーチンを可変間隔または細分性の間隔で呼び出す必要があるドライバーは、CustomTimerDpc ルーチンを設定し、KeXxxTimer ルーチンを使用できます。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 以降で使用できます。
ターゲット プラットフォーム 万国
ヘッダー wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 する HwStorPortProhibitedDDDIs(storport), IrqlIoPassive5(wdm), PowerIrpDDis(wdm)

関連項目

IoStartTimer

IoStopTimer

IoTimer

KeInitializeTimer

KeSetTimer