GetThreadTimes 関数 (processthreadsapi.h)
指定したスレッドのタイミング情報を取得します。
構文
BOOL GetThreadTimes(
[in] HANDLE hThread,
[out] LPFILETIME lpCreationTime,
[out] LPFILETIME lpExitTime,
[out] LPFILETIME lpKernelTime,
[out] LPFILETIME lpUserTime
);
パラメーター
[in] hThread
タイミング情報が求められるスレッドへのハンドル。 ハンドルには、 THREAD_QUERY_INFORMATION または THREAD_QUERY_LIMITED_INFORMATION アクセス権が必要です。 詳細については、「 スレッド セキュリティとアクセス権」を参照してください。
Windows Server 2003 および Windows XP: ハンドルには 、THREAD_QUERY_INFORMATION アクセス権が必要です。
[out] lpCreationTime
スレッドの作成時刻を受け取る FILETIME 構造体へのポインター。
[out] lpExitTime
スレッドの終了時刻を受け取る FILETIME 構造体へのポインター。 スレッドが終了していない場合、この構造体の内容は未定義です。
[out] lpKernelTime
スレッドがカーネル モードで実行した時間を受け取る FILETIME 構造体へのポインター。
[out] lpUserTime
スレッドがユーザー モードで実行した時間を受け取る FILETIME 構造体へのポインター。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
すべての時刻は、 FILETIME データ構造を使用して表されます。 このような構造体には、100 ナノ秒の時間単位の 64 ビットカウントを形成するために結合される 2 つの 32 ビット値が含まれています。
スレッドの作成と終了時間は、1601 年 1 月 1 日の午前 0 時からイギリスのグリニッジで経過した時間として表される時点です。 このような値をより一般的に有用な形式に変換するためにアプリケーションで使用できる関数がいくつかあります。 「時間関数」を参照してください。
スレッド カーネル モードとユーザー モード時間は時間です。 たとえば、スレッドがカーネル モードで 1 秒を費やした場合、この関数は lpKernelTime で指定された FILETIME 構造体に 64 ビット値 1,000 万を入力します。 これは、1 秒の 100 ナノ秒単位の数です。
スレッドによって使用される CPU クロック サイクルの数を取得するには、 QueryThreadCycleTime 関数を使用します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP [デスクトップ アプリ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | processthreadsapi.h (Windows Server 2003、Windows Vista、Windows 7、Windows Server 2008 Windows Server 2008 R2 の Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |