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)

こちらもご覧ください

IoStartTimer

IoStopTimer

IoTimer

KeInitializeTimer

KeSetTimer