Показать сообщение отдельно

  #4  
Старый 19.12.2008, 16:58
MuForum
Новичок
Регистрация: 30.11.2008
Сообщений: 3
С нами: 9181125

Репутация: 0
По умолчанию

Код:
void TFMain::EnableDebugPriv(void)
{
        String Text = "";
        HANDLE hToken;
        LUID sedebugnameValue;
        TOKEN_PRIVILEGES tkp;
        // enable the SeDebugPrivilege;
        if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
        {
                Text = "OpenProcessToken() failed, Error = %d SeDebugPrivilege is not available. " + (String)GetLastError();
                //wprintf( L"OpenProcessToken() failed, Error = %d SeDebugPrivilege is not available.\n", GetLastError());
                WLog(Text);
                return;
        }
        // ----
        if (!LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &sedebugnameValue))
        {
                Text = "LookupPrivilegeValue() failed, Error = %d SeDebugPrivilege is not available. " + (String)GetLastError();
                //wprintf( L"LookupPrivilegeValue() failed, Error = %d SeDebugPrivilege is not available.\n", GetLastError());
                WLog(Text);
                CloseHandle(hToken);
                return;
        }
        // ----
        tkp.PrivilegeCount = 1;
        tkp.Privileges[0].Luid = sedebugnameValue;
        tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
        // ----
         if (!AdjustTokenPrivileges(hToken, FALSE, &tkp, sizeof tkp, NULL, NULL))
         {
                Text = "AdjustTokenPrivileges() failed, Error = %d SeDebugPrivilege is not available. " + (String)GetLastError();
                //wprintf( L"AdjustTokenPrivileges() failed, Error = %d SeDebugPrivilege is not available.\n", GetLastError());
                WLog(Text);
         }
         // ----
         CloseHandle(hToken);
         WLog("End function...");
}
- Использую эту функцию.
 
Ответить с цитированием