1 /* $Id: luid.c,v 1.8 2003/07/11 01:23:16 royce 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;
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
);