WdfTimerCreate 関数 (wdftimer.h)
[KMDF と UMDF に適用]
WdfTimerCreate メソッドは、フレームワーク タイマー オブジェクトを作成します。
構文
NTSTATUS WdfTimerCreate(
[in] PWDF_TIMER_CONFIG Config,
[in] PWDF_OBJECT_ATTRIBUTES Attributes,
[out] WDFTIMER *Timer
);
パラメーター
[in] Config
WDF_TIMER_CONFIG構造体へのポインター。
[in] Attributes
新しいタイマー オブジェクトのオブジェクト属性を含む WDF_OBJECT_ATTRIBUTES 構造体へのポインター。
[out] Timer
新しいフレームワーク タイマー オブジェクトへのハンドルを受け取る場所へのポインター。
戻り値
操作が成功した場合、WdfTimerCreate はSTATUS_SUCCESSを返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。
リターン コード | 説明 |
---|---|
|
Attributes パラメーターが NULL であるか、Attributes が指定するWDF_OBJECT_ATTRIBUTES構造体の ParentObject メンバーが NULL でした。 |
|
無効なパラメーターが指定されました。 |
|
WDF_OBJECT_ATTRIBUTES構造体の ParentObject メンバーは、フレームワーク デバイス オブジェクトまたは親のチェーンがフレームワーク デバイス オブジェクトにつながるオブジェクトを参照しませんでした。 |
|
メモリが不足していました。 |
|
WDF_TIMER_CONFIG構造体の AutomaticSerialization メンバーは TRUE に設定されましたが、親デバイス オブジェクトの実行レベルは WdfExecutionLevelPassive に設定されました。 |
WdfTimerCreate メソッドが返す可能性があるその他の戻り値の一覧については、「Framework オブジェクト作成エラー」を参照してください。
このメソッドは、他の NTSTATUS 値も返す場合があります。
注釈
ドライバーが WdfTimerCreate を呼び出すときは、 WDF_OBJECT_ATTRIBUTES 構造体を指定し、構造体の ParentObject メンバーに親オブジェクトを指定する必要があります。 親オブジェクトには、フレームワーク デバイス オブジェクト、または親のチェーンがフレームワーク デバイス オブジェクトにつながる任意のオブジェクトを指定できます。 フレームワークは、デバイス オブジェクトを削除するとタイマー オブジェクトを削除します。
タイマー オブジェクトを作成した後、ドライバーは WdfTimerStart を 呼び出して、タイマーが定期的かどうかに関係なくタイマーのクロックを開始する必要があります。
ドライバーがフレームワーク タイマー オブジェクト の EvtCleanupCallback または EvtDestroyCallback コールバック関数を提供する場合、フレームワークは IRQL = PASSIVE_LEVEL でこれらのコールバック関数を呼び出します。
フレームワーク タイマー オブジェクトの詳細については、「タイマーの 使用」を参照してください。
例
次のコード例では、 WDF_TIMER_CONFIG 構造体と WDF_OBJECT_ATTRIBUTES 構造体を初期化し、 WdfTimerCreate を呼び出します。
WDF_TIMER_CONFIG timerConfig;
WDF_OBJECT_ATTRIBUTES timerAttributes;
WDFTIMER timerHandle;
NTSTATUS status;
WDF_TIMER_CONFIG_INIT(
&timerConfig,
MyEvtTimerFunc
);
timerConfig.AutomaticSerialization = TRUE;
WDF_OBJECT_ATTRIBUTES_INIT(&timerAttributes);
timerAttributes.ParentObject = DeviceHandle;
status = WdfTimerCreate(
&timerConfig,
&timerAttributes,
&timerHandle
);
if (!NT_SUCCESS(status)) {
return status;
}
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
最小 UMDF バージョン | 2.0 |
Header | wdftimer.h (Wdf.h を含む) |
Library | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
DDI コンプライアンス規則 | DriverCreate(kmdf)、 KmdfIrql(kmdf)、 KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf) |