空き時間情報データにアクセスするのに相対時間を使用する

Free/Busy API の IFreeBusyData インターフェイスは、相対時間の概念を使用します。これは、1601 年 1 月 1 日以降の分数であり、ユニバーサル時刻 (UTC) で表され、 LONG 型の値です。

一般的に使用される相対時間値を次に示します。

  • ULONG ulrtmMax = 1525252319L

  • ULONG ulrtmMin = 0L

相対時間の値が有効であることを確認するには、前の最大および最小の相対時間値を使用します。

NTFS はファイルの時刻を FILETIME 形式でネイティブに記録するため、次のコード例を使用して FILETIME との間の相対時間を変換すると便利な場合があります。

static const LONGLONG UnitsPerMinute = 600000000; 
static const LONGLONG UnitsPerHalfMinute = 300000000; 
void RTimeToFileTime(LONG rtime, FILETIME *pft) 
{ 
    Assert(pft != NULL); 
    ULARGE_INTEGER *puli = (ULARGE_INTEGER *)pft; 
    puli->QuadPart = rtime * UnitsPerMinute; 
} 
  
void FileTimeToRTime(FILETIME *pft, LONG* prtime) 
{ 
    Assert(pft != NULL); 
    Assert(prtime != NULL); 
 
    ULARGE_INTEGER uli = *(ULARGE_INTEGER *)pft; 
  
    uli.QuadPart += UnitsPerHalfMinute; 
    uli.QuadPart /= UnitsPerMinute; 
    *prtime = uli.LowPart; 
} 

関連項目