Utiliser l’heure relative pour accéder aux données de disponibilité
L’interface IFreeBusyData dans l’API Free/Busy utilise un concept de temps relatif, qui est le nombre de minutes depuis le 1er janvier 1601, exprimé en temps universel (UTC), et est une valeur de type LONG.
Voici quelques valeurs de temps relatives couramment utilisées :
ULONG ulrtmMax = 1525252319L
ULONG ulrtmMin = 0L
Utilisez les valeurs de temps relative maximale et minimale précédentes pour vérifier que vos valeurs de temps relative sont valides.
Étant donné que NTFS enregistre les heures de fichier en mode natif au format FILETIME , il peut être pratique d’utiliser l’exemple de code suivant pour convertir le temps relatif vers et à partir de 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;
}