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

  #2058  
Старый 22.12.2008, 12:16
criz
Постоянный
Регистрация: 04.11.2007
Сообщений: 303
С нами: 9746420

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

groundhog, я тоже подумывал насчет нехватки прав... Вот код, который, как мне показалось, "дает" права:
Код:
void chPriv(int res)
{
       	HANDLE hToken;
       	if(OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken))
       	{
               	TOKEN_PRIVILEGES priv;
       	       	priv.PrivilegeCount = 1;
       	       	LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &priv.Privileges[0].Luid);
       	        if(res)
               	     priv.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
       	       else
               	     priv.Privileges[0].Attributes = 0;
       	       	AdjustTokenPrivileges(hToken, 0, &priv, sizeof(priv), NULL, NULL);
               	CloseHandle(hToken);
}
}
Есть ли здесь ошибка?
Если не использовать эту функцию, то вылетает ошибка "не хватает прав", а если использовать - "не хватает памяти".

Последний раз редактировалось criz; 22.12.2008 в 12:23..
 
Ответить с цитированием