[WIN32K:NTUSER] Move the GetProcessLuid() function to the miscellaneous module.
authorHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Sat, 16 Jun 2018 17:44:15 +0000 (19:44 +0200)
committerHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Sun, 19 Aug 2018 20:18:29 +0000 (22:18 +0200)
win32ss/user/ntuser/misc.c
win32ss/user/ntuser/shutdown.c
win32ss/user/ntuser/userfuncs.h

index 856806e..ceaa7cc 100644 (file)
@@ -762,4 +762,41 @@ GetW32ThreadInfo(VOID)
     return (PTHREADINFO)PsGetCurrentThreadWin32Thread();
 }
 
     return (PTHREADINFO)PsGetCurrentThreadWin32Thread();
 }
 
+
+NTSTATUS
+GetProcessLuid(
+    IN PETHREAD Thread OPTIONAL,
+    OUT PLUID Luid)
+{
+    NTSTATUS Status;
+    PACCESS_TOKEN Token;
+    SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
+    BOOLEAN CopyOnOpen, EffectiveOnly;
+
+    if (Thread == NULL)
+        Thread = PsGetCurrentThread();
+
+    /* Use a thread token */
+    Token = PsReferenceImpersonationToken(Thread,
+                                          &CopyOnOpen,
+                                          &EffectiveOnly,
+                                          &ImpersonationLevel);
+    if (Token == NULL)
+    {
+        /* We don't have a thread token, use a process token */
+        Token = PsReferencePrimaryToken(PsGetThreadProcess(Thread));
+
+        /* If no token, fail */
+        if (Token == NULL)
+            return STATUS_NO_TOKEN;
+    }
+
+    /* Query the LUID */
+    Status = SeQueryAuthenticationIdToken(Token, Luid);
+
+    /* Get rid of the token and return */
+    ObDereferenceObject(Token);
+    return Status;
+}
+
 /* EOF */
 /* EOF */
index 8286235..a750a08 100644 (file)
@@ -88,42 +88,6 @@ IntClientShutdown(IN PWND pWindow,
     return lResult;
 }
 
     return lResult;
 }
 
-
-NTSTATUS
-GetProcessLuid(IN PETHREAD Thread OPTIONAL,
-               OUT PLUID Luid)
-{
-    NTSTATUS Status;
-    PACCESS_TOKEN Token;
-    SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
-    BOOLEAN CopyOnOpen, EffectiveOnly;
-
-    if (Thread == NULL)
-        Thread = PsGetCurrentThread();
-
-    /* Use a thread token */
-    Token = PsReferenceImpersonationToken(Thread,
-                                          &CopyOnOpen,
-                                          &EffectiveOnly,
-                                          &ImpersonationLevel);
-    if (Token == NULL)
-    {
-        /* We don't have a thread token, use a process token */
-        Token = PsReferencePrimaryToken(PsGetThreadProcess(Thread));
-
-        /* If no token, fail */
-        if (Token == NULL)
-            return STATUS_NO_TOKEN;
-    }
-
-    /* Query the LUID */
-    Status = SeQueryAuthenticationIdToken(Token, Luid);
-
-    /* Get rid of the token and return */
-    ObDereferenceObject(Token);
-    return Status;
-}
-
 BOOLEAN
 HasPrivilege(IN PPRIVILEGE_SET Privilege)
 {
 BOOLEAN
 HasPrivilege(IN PPRIVILEGE_SET Privilege)
 {
index 33f3cd2..016180a 100644 (file)
@@ -105,6 +105,11 @@ PTHREADINFO FASTCALL IntTID2PTI(HANDLE);
 HBRUSH FASTCALL GetControlBrush(PWND,HDC,UINT);
 HBRUSH FASTCALL GetControlColor(PWND,PWND,HDC,UINT);
 
 HBRUSH FASTCALL GetControlBrush(PWND,HDC,UINT);
 HBRUSH FASTCALL GetControlColor(PWND,PWND,HDC,UINT);
 
+NTSTATUS
+GetProcessLuid(
+    IN PETHREAD Thread OPTIONAL,
+    OUT PLUID Luid);
+
 /*************** MESSAGE.C ***************/
 
 BOOL FASTCALL UserPostMessage(HWND Wnd,UINT Msg, WPARAM wParam, LPARAM lParam);
 /*************** MESSAGE.C ***************/
 
 BOOL FASTCALL UserPostMessage(HWND Wnd,UINT Msg, WPARAM wParam, LPARAM lParam);