https://git.reactos.org/?p=reactos.git;a=commitdiff;h=6ede6ac246a510ee9fc2ab04453187f6f4a08b66

commit 6ede6ac246a510ee9fc2ab04453187f6f4a08b66
Author:     Hermès Bélusca-Maïto <hermes.belusca-ma...@reactos.org>
AuthorDate: Fri Sep 6 16:14:41 2024 +0200
Commit:     Hermès Bélusca-Maïto <hermes.belusca-ma...@reactos.org>
CommitDate: Tue Jan 28 15:37:10 2025 +0100

    [KMTESTS] Remove "EnablePrivilege*" helpers + Fix typo
    
    Their functionality is already ensured by RtlAdjustPrivilege().
---
 modules/rostests/kmtests/include/kmt_test.h  |  2 +-
 modules/rostests/kmtests/kmtest/fltsupport.c | 82 +++-------------------------
 modules/rostests/kmtests/kmtest/kmtest.h     |  2 +-
 3 files changed, 11 insertions(+), 75 deletions(-)

diff --git a/modules/rostests/kmtests/include/kmt_test.h 
b/modules/rostests/kmtests/include/kmt_test.h
index 2f0315a48b5..1e265c9a05a 100644
--- a/modules/rostests/kmtests/include/kmt_test.h
+++ b/modules/rostests/kmtests/include/kmt_test.h
@@ -186,7 +186,7 @@ DWORD KmtSendBufferToDriver(IN DWORD ControlCode, IN OUT 
PVOID Buffer OPTIONAL,
 DWORD KmtFltCreateService(_In_z_ PCWSTR ServiceName, _In_z_ PCWSTR 
DisplayName, _Out_ SC_HANDLE *ServiceHandle);
 DWORD KmtFltDeleteService(_In_opt_z_ PCWSTR ServiceName, _Inout_ SC_HANDLE 
*ServiceHandle);
 DWORD KmtFltAddAltitude(_In_z_ LPWSTR Altitude);
-DWORD KmtFltLoadDriver(_In_ BOOLEAN EnableDriverLoadPrivlege, _In_ BOOLEAN 
RestartIfRunning, _In_ BOOLEAN ConnectComms, _Out_ HANDLE *hPort);
+DWORD KmtFltLoadDriver(_In_ BOOLEAN EnableDriverLoadPrivilege, _In_ BOOLEAN 
RestartIfRunning, _In_ BOOLEAN ConnectComms, _Out_ HANDLE *hPort);
 DWORD KmtFltUnloadDriver(_In_ HANDLE *hPort, _In_ BOOLEAN DisonnectComms);
 DWORD KmtFltConnectComms(_Out_ HANDLE *hPort);
 DWORD KmtFltDisconnectComms(_In_ HANDLE hPort);
diff --git a/modules/rostests/kmtests/kmtest/fltsupport.c 
b/modules/rostests/kmtests/kmtest/fltsupport.c
index ae0cb05abb4..19868018d47 100644
--- a/modules/rostests/kmtests/kmtest/fltsupport.c
+++ b/modules/rostests/kmtests/kmtest/fltsupport.c
@@ -11,6 +11,7 @@
 #include "kmtest.h"
 #include <kmt_public.h>
 
+#include <ndk/setypes.h>
 #include <assert.h>
 #include <debug.h>
 
@@ -25,10 +26,6 @@ KmtpCreateService(
     IN DWORD ServiceType,
     OUT SC_HANDLE *ServiceHandle);
 
-DWORD EnablePrivilegeInCurrentProcess(
-    _In_z_ LPWSTR lpPrivName,
-    _In_ BOOL bEnable);
-
 // move to a shared location
 typedef struct _KMTFLT_MESSAGE_HEADER
 {
@@ -110,7 +107,7 @@ KmtFltDeleteService(
  */
 DWORD
 KmtFltLoadDriver(
-    _In_ BOOLEAN EnableDriverLoadPrivlege,
+    _In_ BOOLEAN EnableDriverLoadPrivilege,
     _In_ BOOLEAN RestartIfRunning,
     _In_ BOOLEAN ConnectComms,
     _Out_ HANDLE *hPort
@@ -118,13 +115,16 @@ KmtFltLoadDriver(
 {
     DWORD Error;
 
-    if (EnableDriverLoadPrivlege)
+    if (EnableDriverLoadPrivilege)
     {
-        Error = EnablePrivilegeInCurrentProcess(SE_LOAD_DRIVER_NAME , TRUE);
+        BOOLEAN WasEnabled;
+        Error = RtlNtStatusToDosError(RtlAdjustPrivilege(
+                    SE_LOAD_DRIVER_PRIVILEGE,
+                    TRUE,
+                    FALSE, // Enable in current process.
+                    &WasEnabled));
         if (Error)
-        {
             return Error;
-        }
     }
 
     Error = KmtFltLoad(TestServiceName);
@@ -141,14 +141,10 @@ KmtFltLoadDriver(
     }
 
     if (Error)
-    {
         return Error;
-    }
 
     if (ConnectComms)
-    {
         Error = KmtFltConnectComms(hPort);
-    }
 
     return Error;
 }
@@ -524,63 +520,3 @@ Quit:
     return Error;
 
 }
-
-/*
-* Private functions, not meant for use in kmtests
-*/
-
-DWORD EnablePrivilege(
-    _In_ HANDLE hToken,
-    _In_z_ LPWSTR lpPrivName,
-    _In_ BOOL bEnable)
-{
-    TOKEN_PRIVILEGES TokenPrivileges;
-    LUID luid;
-    BOOL bSuccess;
-    DWORD dwError = ERROR_SUCCESS;
-
-    /* Get the luid for this privilege */
-    if (!LookupPrivilegeValueW(NULL, lpPrivName, &luid))
-        return GetLastError();
-
-    /* Setup the struct with the priv info */
-    TokenPrivileges.PrivilegeCount = 1;
-    TokenPrivileges.Privileges[0].Luid = luid;
-    TokenPrivileges.Privileges[0].Attributes = bEnable ? SE_PRIVILEGE_ENABLED 
: 0;
-
-    /* Enable the privilege info in the token */
-    bSuccess = AdjustTokenPrivileges(hToken,
-                                     FALSE,
-                                     &TokenPrivileges,
-                                     sizeof(TOKEN_PRIVILEGES),
-                                     NULL,
-                                     NULL);
-    if (bSuccess == FALSE) dwError = GetLastError();
-
-    /* return status */
-    return dwError;
-}
-
-DWORD EnablePrivilegeInCurrentProcess(
-    _In_z_ LPWSTR lpPrivName,
-    _In_ BOOL bEnable)
-{
-    HANDLE hToken;
-    BOOL bSuccess;
-    DWORD dwError = ERROR_SUCCESS;
-
-    /* Get a handle to our token */
-    bSuccess = OpenProcessToken(GetCurrentProcess(),
-                                TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,
-                                &hToken);
-    if (bSuccess == FALSE) return GetLastError();
-
-    /* Enable the privilege in the agent token */
-    dwError = EnablePrivilege(hToken, lpPrivName, bEnable);
-
-    /* We're done with this now */
-    CloseHandle(hToken);
-
-    /* return status */
-    return dwError;
-}
diff --git a/modules/rostests/kmtests/kmtest/kmtest.h 
b/modules/rostests/kmtests/kmtest/kmtest.h
index a32d41c0546..2a6c9ef2216 100644
--- a/modules/rostests/kmtests/kmtest/kmtest.h
+++ b/modules/rostests/kmtests/kmtest/kmtest.h
@@ -126,6 +126,6 @@ KmtFltDeleteService(
 DWORD KmtFltCloseService(
     _Inout_ SC_HANDLE *ServiceHandle);
 
-#endif /* KMT_FILTER_DRIVER */
+#endif /* KMT_FLT_USER_MODE */
 
 #endif /* !defined _KMTESTS_H_ */

Reply via email to