mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 20:53:02 +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 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 KmtFltDeleteService(_In_opt_z_ PCWSTR ServiceName, _Inout_ SC_HANDLE *ServiceHandle);
|
||||||
DWORD KmtFltAddAltitude(_In_z_ LPWSTR Altitude);
|
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 KmtFltUnloadDriver(_In_ HANDLE *hPort, _In_ BOOLEAN DisonnectComms);
|
||||||
DWORD KmtFltConnectComms(_Out_ HANDLE *hPort);
|
DWORD KmtFltConnectComms(_Out_ HANDLE *hPort);
|
||||||
DWORD KmtFltDisconnectComms(_In_ HANDLE hPort);
|
DWORD KmtFltDisconnectComms(_In_ HANDLE hPort);
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#include "kmtest.h"
|
#include "kmtest.h"
|
||||||
#include <kmt_public.h>
|
#include <kmt_public.h>
|
||||||
|
|
||||||
|
#include <ndk/setypes.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
|
@ -25,10 +26,6 @@ KmtpCreateService(
|
||||||
IN DWORD ServiceType,
|
IN DWORD ServiceType,
|
||||||
OUT SC_HANDLE *ServiceHandle);
|
OUT SC_HANDLE *ServiceHandle);
|
||||||
|
|
||||||
DWORD EnablePrivilegeInCurrentProcess(
|
|
||||||
_In_z_ LPWSTR lpPrivName,
|
|
||||||
_In_ BOOL bEnable);
|
|
||||||
|
|
||||||
// move to a shared location
|
// move to a shared location
|
||||||
typedef struct _KMTFLT_MESSAGE_HEADER
|
typedef struct _KMTFLT_MESSAGE_HEADER
|
||||||
{
|
{
|
||||||
|
@ -110,7 +107,7 @@ KmtFltDeleteService(
|
||||||
*/
|
*/
|
||||||
DWORD
|
DWORD
|
||||||
KmtFltLoadDriver(
|
KmtFltLoadDriver(
|
||||||
_In_ BOOLEAN EnableDriverLoadPrivlege,
|
_In_ BOOLEAN EnableDriverLoadPrivilege,
|
||||||
_In_ BOOLEAN RestartIfRunning,
|
_In_ BOOLEAN RestartIfRunning,
|
||||||
_In_ BOOLEAN ConnectComms,
|
_In_ BOOLEAN ConnectComms,
|
||||||
_Out_ HANDLE *hPort
|
_Out_ HANDLE *hPort
|
||||||
|
@ -118,13 +115,16 @@ KmtFltLoadDriver(
|
||||||
{
|
{
|
||||||
DWORD Error;
|
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)
|
if (Error)
|
||||||
{
|
|
||||||
return Error;
|
return Error;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Error = KmtFltLoad(TestServiceName);
|
Error = KmtFltLoad(TestServiceName);
|
||||||
|
@ -141,14 +141,10 @@ KmtFltLoadDriver(
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Error)
|
if (Error)
|
||||||
{
|
|
||||||
return Error;
|
return Error;
|
||||||
}
|
|
||||||
|
|
||||||
if (ConnectComms)
|
if (ConnectComms)
|
||||||
{
|
|
||||||
Error = KmtFltConnectComms(hPort);
|
Error = KmtFltConnectComms(hPort);
|
||||||
}
|
|
||||||
|
|
||||||
return Error;
|
return Error;
|
||||||
}
|
}
|
||||||
|
@ -524,63 +520,3 @@ Quit:
|
||||||
return Error;
|
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(
|
DWORD KmtFltCloseService(
|
||||||
_Inout_ SC_HANDLE *ServiceHandle);
|
_Inout_ SC_HANDLE *ServiceHandle);
|
||||||
|
|
||||||
#endif /* KMT_FILTER_DRIVER */
|
#endif /* KMT_FLT_USER_MODE */
|
||||||
|
|
||||||
#endif /* !defined _KMTESTS_H_ */
|
#endif /* !defined _KMTESTS_H_ */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue