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 されたか、属性 が指定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 |
ヘッダー | wdftimer.h (Wdf.h を含む) |
ライブラリ | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
DDI コンプライアンス規則 を する | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |