#define SECS_15_OCT_1582_TO_1601 ((17 + 30 + 31 + 365 * 18 + 5) * SECSPERDAY)
#define TICKS_15_OCT_1582_TO_1601 ((ULONGLONG)SECS_15_OCT_1582_TO_1601 * TICKSPERSEC)
-/* 10000 in 100-ns model = 0,1 microsecond */
+/* 10000 in 100-ns model = 0.1 microsecond */
#define TIME_FRAME 10000
#if defined (ALLOC_PRAGMA)
UUID_CACHED_VALUES_STRUCT ExpUuidCachedValues = {0ULL, 0xFFFFFFFF, 0, 0, { 0x80, 0x6E, 0x6F, 0x6E, 0x69, 0x63}};
BOOLEAN ExpUuidCacheValid = FALSE;
ULONG ExpLuidIncrement = 1;
-LARGE_INTEGER ExpLuid = {.LowPart = 0x3e9, .HighPart = 0x0};
+LARGE_INTEGER ExpLuid = {{0x3e9, 0x0}};
/* FUNCTIONS ****************************************************************/
return STATUS_RETRY;
}
- /* If time diff > 0,1ms, squash it to reduce it to keep our clock resolution */
+ /* If time diff > 0.1ms, squash it to reduce it to keep our clock resolution */
if (TimeDiff.HighPart > 0 || TimeDiff.QuadPart > TICKS_PER_CLOCK_TICK * TIME_FRAME)
{
TimeDiff.QuadPart = TICKS_PER_CLOCK_TICK * TIME_FRAME;
NTAPI
ExAllocateLocallyUniqueId(OUT LUID *LocallyUniqueId)
{
- LARGE_INTEGER PrevLuid;
- LONGLONG NewLuid, CompLuid;
-
/* Atomically increment the luid */
- PrevLuid.QuadPart = ExpLuid.QuadPart;
- for (NewLuid = ExpLuid.QuadPart + ExpLuidIncrement; ;
- NewLuid = PrevLuid.QuadPart + ExpLuidIncrement)
- {
- CompLuid = InterlockedCompareExchange64(&ExpLuid.QuadPart,
- NewLuid,
- PrevLuid.QuadPart);
- if (CompLuid == PrevLuid.QuadPart)
- {
- break;
- }
-
- PrevLuid.QuadPart = CompLuid;
- }
-
- LocallyUniqueId->LowPart = PrevLuid.LowPart;
- LocallyUniqueId->HighPart = PrevLuid.HighPart;
+ *(LONG64*)LocallyUniqueId = InterlockedExchangeAdd64(&ExpLuid.QuadPart,
+ ExpLuidIncrement);
}