Поделиться через


Использование относительного времени для доступа к данным о доступности

Интерфейс IFreeBusyData в API доступности использует понятие относительного времени, которое представляет собой количество минут с 1 января 1601 г., выраженное в формате универсального времени (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; 
} 

См. также