mirror of
https://github.com/reactos/reactos.git
synced 2025-02-28 19:32:59 +00:00
[KMTESTS] Remove "EnablePrivilege*" helpers + Fix typo
Their functionality is already ensured by RtlAdjustPrivilege().
This commit is contained in:
parent
cf2cbe6ff6
commit
6ede6ac246
3 changed files with 11 additions and 75 deletions
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -126,6 +126,6 @@ KmtFltDeleteService(
|
|||
DWORD KmtFltCloseService(
|
||||
_Inout_ SC_HANDLE *ServiceHandle);
|
||||
|
||||
#endif /* KMT_FILTER_DRIVER */
|
||||
#endif /* KMT_FLT_USER_MODE */
|
||||
|
||||
#endif /* !defined _KMTESTS_H_ */
|
||||
|
|
Loading…
Reference in a new issue