From ea31cf0a5777f1c16b66d361ccb0104c1fc5f297 Mon Sep 17 00:00:00 2001
From: Francois Gouget <fgouget@free.fr>
Date: Tue, 20 Nov 2001 18:52:20 +0000
Subject: [PATCH] Fix LUID definition.

---
 dlls/advapi32/service.c |  4 ++--
 dlls/ntdll/nt.c         | 15 +++++++++------
 include/winnt.h         | 11 +++++++----
 3 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/dlls/advapi32/service.c b/dlls/advapi32/service.c
index 679821ec4a7..ac7ecb59c73 100644
--- a/dlls/advapi32/service.c
+++ b/dlls/advapi32/service.c
@@ -262,8 +262,8 @@ OpenSCManagerW( LPCWSTR lpMachineName, LPCWSTR lpDatabaseName,
 BOOL WINAPI
 AllocateLocallyUniqueId( PLUID lpluid )
 {
-	lpluid->s.LowPart = time(NULL);
-	lpluid->s.HighPart = 0;
+	lpluid->LowPart = time(NULL);
+	lpluid->HighPart = 0;
 	return TRUE;
 }
 
diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c
index be0dcdbc789..46f1a107d19 100644
--- a/dlls/ntdll/nt.c
+++ b/dlls/ntdll/nt.c
@@ -692,12 +692,15 @@ NTSTATUS WINAPI NtPowerInformation(DWORD x1,DWORD x2,DWORD x3,DWORD x4,DWORD x5)
  */
 NTSTATUS WINAPI NtAllocateLocallyUniqueId(PLUID Luid)
 {
-	static LUID luid;
+    static LUID luid;
 
-	FIXME("%p (0x%08lx%08lx)\n", Luid, luid.DUMMYSTRUCTNAME.HighPart, luid.DUMMYSTRUCTNAME.LowPart);
+    FIXME("%p (0x%08lx%08lx)\n", Luid, luid.HighPart, luid.LowPart);
 
-	luid.QuadPart++;
-	
-	Luid->QuadPart = luid.QuadPart;
-	return STATUS_SUCCESS;
+    luid.LowPart++;
+    if (luid.LowPart==0)
+        luid.HighPart++;
+    Luid->HighPart = luid.HighPart;
+    Luid->LowPart = luid.LowPart;
+
+    return STATUS_SUCCESS;
 }
diff --git a/include/winnt.h b/include/winnt.h
index 40a1ff1edf3..4c12835202a 100644
--- a/include/winnt.h
+++ b/include/winnt.h
@@ -3591,12 +3591,15 @@ typedef union _ULARGE_INTEGER {
  * Locally Unique Identifier
  */
 
-typedef LARGE_INTEGER LUID,*PLUID;
+typedef struct _LUID {
+    DWORD LowPart;
+    LONG HighPart;
+} LUID, *PLUID;
 
 typedef struct _LUID_AND_ATTRIBUTES {
-  LUID   Luid; 
-  DWORD  Attributes; 
-} LUID_AND_ATTRIBUTES; 
+  LUID   Luid;
+  DWORD  Attributes;
+} LUID_AND_ATTRIBUTES;
 
 /*
  * PRIVILEGE_SET
-- 
GitLab