次の方法で共有


QueryUnbiasedInterruptTime 関数 (realtimeapiset.h)

現在の偏りのない割り込み時間数を 100 ナノ秒単位で取得します。 偏りのない割り込み時間数には、システムがスリープまたは休止状態で費やす時間は含まれません。

構文

BOOL QueryUnbiasedInterruptTime(
  PULONGLONG UnbiasedTime
);

パラメーター

UnbiasedTime

未定

戻り値

関数が成功した場合、戻り値は 0 以外です。 関数が null パラメーターを使用して呼び出されたために失敗した場合、戻り値は 0 になります。

備考

割り込み時間カウントは、システムが起動すると 0 から始まり、クロック割り込みごとにクロック ティックの長さでインクリメントされます。 クロック ティックの正確な長さは、基になるハードウェアによって異なり、システムによって異なる場合があります。

QueryUnbiasedInterruptTime 関数によって取得された割り込み時間数は、システムが動作状態にある時間のみを反映します。 そのため、割り込み時間数は、システムがスリープまたは休止状態に費やす時間によって "偏り" されません。 システムは、スリープ中に期限切れになった相対タイマーが、ウェイク時にすぐに期限切れになるようにするなど、一部の操作に偏った割り込み時間を使用します。

システム時間とは異なり、割り込み時間の数は、ユーザーまたは Windows タイム サービスによる調整の対象になりません。 アプリケーションでは、割り込み時間数を使用して、システム時間よりも細かい期間を測定できます。 割り込み時間数よりも高い精度を必要とするアプリケーションでは、高解像度タイマーを使用する必要があります。 QueryPerformanceFrequency 関数を使用して、高解像度タイマーの頻度を取得し、QueryPerformanceCounter 関数を使用してカウンターの値を取得します。

timeBeginPeriod および timeEndPeriod 関数によって設定されるタイマー解決は、QueryUnbiasedInterruptTime 関数の解決に影響します。 ただし、プロセッサが省電力状態に入らないようにすることで、システム全体のパフォーマンスを低下させ、システムの電力消費量を増やすことができるため、タイマーの解像度を上げることはお勧めしません。 代わりに、アプリケーションでは高解像度タイマーを使用する必要があります。

QueryUnbiasedInterruptTime 関数は、割り込み時間数とティック数が約 49 日進むため、Windows のデバッグ ("checked") ビルドで異なる結果が生成されます。 これは、システムが長時間実行されるまで発生しない可能性のあるバグを特定するのに役立ちます。
 
この関数を使用するアプリケーションをコンパイルするには、_WIN32_WINNTを 0x0601 以降として定義します。 詳細については、「Windows ヘッダーの使用」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 7、Windows 8 [デスクトップ アプリ |UWP アプリ]
サポートされる最小サーバー Windows Server 2008 R2 [デスクトップ アプリ |UWP アプリ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー realtimeapiset.h (Windows.h を含む)
ライブラリ Mincore.lib
DLL Kernel32.dll

関連項目

割り込み時間

QueryInterruptTime

QueryInterruptTimePrecise

QueryUnbiasedInterruptTimePrecise

システムの電源状態

Windows タイム の