1 /* $Id: luid.c,v 1.7 2003/05/31 11:10:30 ekohl Exp $
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;
38 NtAllocateLocallyUniqueId(OUT LUID
*LocallyUniqueId
)
40 LARGE_INTEGER ReturnedLuid
;
43 KeAcquireSpinLock(&LuidLock
,
45 ReturnedLuid
= LuidValue
;
46 LuidValue
= RtlLargeIntegerAdd(LuidValue
,
48 KeReleaseSpinLock(&LuidLock
,
51 LocallyUniqueId
->LowPart
= ReturnedLuid
.u
.LowPart
;
52 LocallyUniqueId
->HighPart
= ReturnedLuid
.u
.HighPart
;
54 return(STATUS_SUCCESS
);
59 RtlCopyLuid(IN PLUID LuidDest
,
62 LuidDest
->LowPart
= LuidSrc
->LowPart
;
63 LuidDest
->HighPart
= LuidSrc
->HighPart
;
68 RtlEqualLuid(IN PLUID Luid1
,
71 return (Luid1
->LowPart
== Luid2
->LowPart
&&
72 Luid1
->HighPart
== Luid2
->HighPart
);