GetProcessTimes 関数 (processthreadsapi.h)
指定したプロセスのタイミング情報を取得します。
構文
BOOL GetProcessTimes(
[in] HANDLE hProcess,
[out] LPFILETIME lpCreationTime,
[out] LPFILETIME lpExitTime,
[out] LPFILETIME lpKernelTime,
[out] LPFILETIME lpUserTime
);
パラメーター
[in] hProcess
タイミング情報が求められるプロセスのハンドル。 ハンドルには、PROCESS_QUERY_INFORMATIONまたは PROCESS_QUERY_LIMITED_INFORMATION アクセス権 が 必要です。 詳細については、「 セキュリティとアクセス権の処理」を参照してください。
Windows Server 2003 および Windows XP: ハンドルには 、PROCESS_QUERY_INFORMATION アクセス権が必要です。
[out] lpCreationTime
プロセスの作成時刻を受け取る FILETIME 構造体へのポインター。
[out] lpExitTime
プロセスの終了時刻を受け取る FILETIME 構造体へのポインター。 プロセスが終了していない場合、この構造体の内容は未定義です。
[out] lpKernelTime
プロセスがカーネル モードで実行された時間を受け取る FILETIME 構造体へのポインター。 プロセスの各スレッドがカーネル モードで実行された時間が決定され、それらのすべての時間が合計されてこの値が取得されます。
[out] lpUserTime
プロセスがユーザー モードで実行された時間を受け取る FILETIME 構造体へのポインター。 プロセスの各スレッドがユーザー モードで実行された時間が決定され、これらのすべての時間が合計されてこの値が取得されます。 この値は、プロセスが複数の CPU コアで実行される場合に、経過時間 ( lpCreationTime と lpExitTime の間) を超える可能性があることに注意してください。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
すべての時刻は、 FILETIME データ構造を使用して表されます。 このような構造体には、100 ナノ秒の時間単位の 64 ビットカウントを形成するために結合される 2 つの 32 ビット値が含まれています。
プロセスの作成と終了時刻は、1601 年 1 月 1 日の午前 0 時からイギリスのグリニッジで経過した時間として表される時点です。 アプリケーションでこのような値をより一般的に役立つ形式に変換するために使用できる関数がいくつかあります。
プロセス カーネル モードとユーザー モード時間は、時間の量です。 たとえば、プロセスがカーネル モードで 1 秒を費やした場合、この関数は lpKernelTime で指定された FILETIME 構造体に 1000 万の 64 ビット値を格納します。 これは、1 秒あたりの 100 ナノ秒単位の数です。
プロセスのスレッドによって使用される CPU クロック サイクルの数を取得するには、 QueryProcessCycleTime 関数を使用します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | 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 |