https://git.reactos.org/?p=reactos.git;a=commitdiff;h=6ede6ac246a510ee9fc2a…
commit 6ede6ac246a510ee9fc2ab04453187f6f4a08b66
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Fri Sep 6 16:14:41 2024 +0200
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)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_ */