RtlTimeToSecondsSince1970 関数 (winternl.h)
[RtlTimeToSecondsSince1970 は、Windows 2000 および Windows XP で使用できます。 以降のリリースでは使用できないか、変更される可能性があります。]
指定した 64 ビット システム時刻を、1970 年 1 月 1 日以降の秒数に変換します。
構文
BOOLEAN RtlTimeToSecondsSince1970(
[in] PLARGE_INTEGER Time,
[out] PULONG ElapsedSeconds
);
パラメーター
[in] Time
システム時刻を指定する LARGE_INTEGER 構造体へのポインター。 この値の有効な年は、1970 ~ 2105 です。
[out] ElapsedSeconds
秒数を受け取る変数へのポインター。
戻り値
関数が成功すると、 TRUE が返されます。 失敗した場合は、 FALSE を返します。 通常、 Time パラメーターの指定された値がパラメーターの説明で指定された有効な期間内にない場合、この関数は失敗します。
注釈
この関数には、インポート ライブラリが関連付けされません。 LoadLibrary 関数と GetProcAddress 関数を使用して、Ntdll.dll に動的にリンクする必要があります。
同等のパブリック関数は 1 つもありません。 パブリック関数を使用してこのタスクを実行するには、次の手順を使用します。
- SystemTimeToFileTime を呼び出して、システム時刻を FILETIME 構造体にコピーします。 GetSystemTime を呼び出して、SystemTimeToFileTime に渡す現在のシステム時刻を取得します。
- FILETIME 構造体の内容をULARGE_INTEGER構造体にコピーします。
- 1970 年 1 月 1 日の最初の 2 番目の日付と時刻を使用して SYSTEMTIME 構造体を初期化します。
- SystemTimeToFileTime を呼び出し、手順 3 で初期化された SYSTEMTIME 構造体を呼び出しに渡します。
- 手順 4 で SystemTimeToFileTime によって返される FILETIME 構造体の内容を 2 つ目のULARGE_INTEGERにコピーします。 コピーした値は、手順 2 でコピーした値以下にする必要があります。
- ステップ 5 (1970 年 1 月 1 日) で初期化された ULARGE_INTEGER 構造体の 64 ビット値を、手順 2 で初期化 されたULARGE_INTEGER 構造体の 64 ビット値 (現在のシステム時刻) から減算します。 これにより、1970 年 1 月 1 日以降、100 ナノ秒間隔の値が生成されます。 この値を秒に変換するには、10,000,000 で除算します。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | winternl.h |
Library | ntdll.lib |
[DLL] | ntdll.dll |