3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS kernel
5 * PURPOSE: Security manager
6 * FILE: ntoskrnl/se/luid.c
9 * 26/07/98: Added stubs for security functions
12 /* INCLUDES *****************************************************************/
14 #include <ddk/ntddk.h>
16 #include <internal/debug.h>
18 /* GLOBALS *******************************************************************/
20 static KSPIN_LOCK LuidLock;
21 static LARGE_INTEGER LuidIncrement;
22 static LARGE_INTEGER LuidValue;
24 #define SYSTEM_LUID 0x3E7;
26 /* FUNCTIONS *****************************************************************/
31 KeInitializeSpinLock(&LuidLock);
32 LuidValue.QuadPart = SYSTEM_LUID;
33 LuidIncrement.QuadPart = 1;
41 NtAllocateLocallyUniqueId(OUT LUID *LocallyUniqueId)
43 LARGE_INTEGER ReturnedLuid;
46 KeAcquireSpinLock(&LuidLock,
48 ReturnedLuid = LuidValue;
49 LuidValue = RtlLargeIntegerAdd(LuidValue,
51 KeReleaseSpinLock(&LuidLock,
54 LocallyUniqueId->LowPart = ReturnedLuid.u.LowPart;
55 LocallyUniqueId->HighPart = ReturnedLuid.u.HighPart;
57 return(STATUS_SUCCESS);
65 RtlCopyLuid(IN PLUID LuidDest,
68 LuidDest->LowPart = LuidSrc->LowPart;
69 LuidDest->HighPart = LuidSrc->HighPart;
77 RtlEqualLuid(IN PLUID Luid1,
80 return (Luid1->LowPart == Luid2->LowPart &&
81 Luid1->HighPart == Luid2->HighPart);