BOOL WINAPI dbgPrivilegeSet(PWORD pwName)
{
HANDLE hToken;
TOKEN_PRIVILEGES tp;
BOOL fOk = FALSE;
if ( (pwName != NULL) &&
OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES,
&hToken) )
{
if ( LookupPrivilegeValue(NULL,pwName,&tp,Privileges->Luid) )
{
tp.Privileges->Attributes = SE_PRIVILEGE_ENABLED;
tp.PrivilegeCount = 1;
fOk = AdjustTokenPrivileges(hToken,FALSE,&tp,0,NULL,NULL)
&& (GetLastError() == ERROR_SUCCESS);
}
CloseHandle(hToken);
}
return fOk;
}
//------------------------------------------------------------------------------------
BOOL WINAPI dbgPrivilegeDebug(void)
{
return dbgPrivilegeSet(SE_DEBGU_NAME);
}