mirror of
https://github.com/wolfpld/tracy.git
synced 2026-06-08 08:33:48 +00:00
add admin check (and don't log it if it fails).
This commit is contained in:
@@ -185,6 +185,9 @@ bool SysTraceStart( int64_t& samplingPeriod )
|
||||
|
||||
s_pid = GetCurrentProcessId();
|
||||
|
||||
if ( !etw::CheckAdminPrivilege() )
|
||||
return false;
|
||||
|
||||
session = etw::StartPrivateKernelSession( "TracySysTrace" );
|
||||
if (session.handle == 0)
|
||||
return false;
|
||||
|
||||
@@ -160,6 +160,19 @@ static ULONG ETWError( ULONG result )
|
||||
return result;
|
||||
}
|
||||
|
||||
static bool CheckAdminPrivilege()
|
||||
{
|
||||
HANDLE hToken = NULL;
|
||||
if ( OpenProcessToken( GetCurrentProcess(), TOKEN_QUERY, &hToken ) == FALSE )
|
||||
return ETWError( GetLastError() ), false;
|
||||
TOKEN_ELEVATION_TYPE elevationType = TokenElevationTypeDefault;
|
||||
DWORD ReturnLength = 0;
|
||||
if ( GetTokenInformation( hToken, TokenElevationType, &elevationType, sizeof( elevationType ), &ReturnLength ) == FALSE )
|
||||
ETWError( GetLastError() ), false;
|
||||
CloseHandle( hToken );
|
||||
return ( elevationType == TokenElevationTypeFull );
|
||||
}
|
||||
|
||||
static DWORD ElevatePrivilege( LPCTSTR PrivilegeName )
|
||||
{
|
||||
TOKEN_PRIVILEGES tp = {};
|
||||
|
||||
Reference in New Issue
Block a user