NdisSetTimerObject 関数 (ndis.h)

NdisSetTimerObject 関数は、指定した間隔または定期的に発生するタイマー オブジェクトを設定します。

構文

BOOLEAN NdisSetTimerObject(
  [in]           NDIS_HANDLE   TimerObject,
  [in]           LARGE_INTEGER DueTime,
  [in, optional] LONG          MillisecondsPeriod,
  [in, optional] PVOID         FunctionContext
);

パラメーター

[in] TimerObject

ドライバーが を呼び出すときに NDIS が提供するタイマー オブジェクトへのハンドル NdisAllocateTimerObject 関数。

[in] DueTime

タイマーの有効期限が切れる絶対時間または相対時間。 DueTime パラメーターの値が負の場合、有効期限は現在のシステム時刻に対して相対的になります。 それ以外の場合、有効期限は絶対です。 有効期限は、システム時間単位 (100 ナノ秒間隔) で表されます。 絶対有効期限は、システム時刻の変更を追跡します。相対有効期限は、システム時刻の変更の影響を受けません。

[in, optional] MillisecondsPeriod

タイマーが取り消されない限り、タイマーが起動するたびに NetTimerCallback 関数を次に呼び出す間隔 (ミリ秒単位)。 このパラメーターの値は、MAXLONG 以下である必要があります。

[in, optional] FunctionContext

タイマーが発生したときに、NDIS が関連付けられている NetTimerCallback 関数に渡す呼び出し元が指定したコンテキスト領域へのポインター。 このパラメーターが NULL の場合、NDIS は で指定された既定値を使用します。 NDIS_TIMER_CHARACTERISTICS 構造体。

戻り値

タイマー オブジェクトがシステム タイマー キューに既に存在する場合、NdisSetTimerObjectTRUE を返します。それ以外の場合は、FALSE を返します

注釈

ドライバーが NdisSetTimerObject を呼び出した後、 DueTime パラメーターで指定された間隔が切れるまで、タイマー オブジェクトはキューに入れられます。 間隔が切れると、タイマー オブジェクトはデキューされ、プロセッサが使用可能になるとすぐに、呼び出し元が指定した NetTimerCallback 関数が IRQL = DISPATCH_LEVELで 1 回実行されます。

MillisecondsPeriod パラメーターに 0 以外の値を指定した場合、ミリ秒Period で指定された間隔の有効期限が切れるまで、タイマー オブジェクトは再びキューに入れられます。 この間隔が経過すると、タイマー オブジェクトが再キューされ、プロセッサが使用可能になるとすぐに、呼び出し元から提供された NetTimerCallback 関数が IRQL = DISPATCH_LEVELで 1 回実行されます。

メモ Windows 7 以降では、 を呼び出すことで電力消費量を削減できます。正確なタイマー精度が必要ない場合は、NdisSetTimerObject ではなく NdisSetCoalescableTimerObject
 
タイマー動作の詳細については、「 KeSetTimerEx」を参照してください。

タイマーを取り消すには、 NdisCancelTimerObject 関数を呼び出します。

要件

要件
サポートされている最小のクライアント NDIS 6.0 以降でサポートされています。
対象プラットフォーム ユニバーサル
Header ndis.h (Ndis.h を含む)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 Irql_Timer_Function(ndis)PeriodicTimer(ndis)

こちらもご覧ください

KeSetTimerEx

NDIS_TIMER_CHARACTERISTICS

NdisAllocateTimerObject

NdisCancelTimerObject

NdisSetCoalescableTimerObject

NetTimerCallback