現在のバイアスなし割り込み時刻カウントを 100 ナノ秒単位で取得する。バイアスなし割り込み時刻カウントには、システムがスリープまたは休止状態で費やした時間は含まれない。
QueryUnbiasedInterruptTime UnbiasedTime
UnbiasedTime : [var] TBD
(プラグイン / モジュール : kernel32.dll)
現在のバイアスなし割り込み時刻カウントを 100
ナノ秒単位で取得する。バイアスなし割り込み時刻カウントには、システムがスリープまたは休止状態で費やした時間は含まれない。
[戻り値]
関数が成功した場合、戻り値は 0 以外である。NULL パラメータで呼び出されたために関数が失敗した場合、戻り値は 0 である。
[備考]
割り込み時刻カウントはシステム起動時に 0
から開始し、クロック割り込みごとにクロックティックの長さだけ増加する。クロックティックの正確な長さは基盤となるハードウェアに依存し、システムごとに異なる可能性がある。QueryUnbiasedInterruptTime
関数で取得される割り込み時刻カウントは、システムが稼動状態にある時間のみを反映する。したがって、スリープや休止状態で費やした時間によって
"バイアス"
されない。システムは一部の操作(スリープ中に期限が切れるはずだった相対タイマを起床時に即座に期限切れにする、など)のためにバイアスされた割り込み時刻を使用する。システム時刻と異なり、割り込み時刻カウントはユーザまたは
Windows
タイムサービスによる調整の対象とならない。アプリケーションはシステム時刻より細かい期間を計測するために割り込み時刻カウントを使用できる。割り込み時刻カウントより高い精度を必要とするアプリケーションは高分解能タイマを使用すべきである。高分解能タイマの周波数を取得するには
QueryPerformanceFrequency 関数を、カウンタ値を取得するには QueryPerformanceCounter
関数を使用する。timeBeginPeriod および timeEndPeriod 関数で設定されるタイマ分解能は
QueryUnbiasedInterruptTime
関数の分解能に影響する。ただし、タイマ分解能を上げると、プロセッサが省電力状態に入れなくなり全体的なシステム性能の低下と消費電力の増加を招くため推奨されない。代わりに高分解能タイマを使用すべきである。注:
QueryUnbiasedInterruptTime 関数はデバッグ("checked")ビルドの Windows
では異なる結果を生成する。割り込み時刻カウントとティックカウントが約 49
日分進められるためである。これにより、システムが長時間稼動するまで発生しないバグを特定しやすくなる。checked ビルドは MSDN
サブスクライバが MSDN サイトを通じて入手できる。この関数を使用するアプリケーションをコンパイルするには、_WIN32_WINNT を
0x0601 以上に定義する。詳細は Using the Windows Headers を参照。
| プラグイン / モジュール | kernel32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_kernel32_gen2.hs |