您好,登錄后才能下訂單哦!
BOOL EnableShutdownPrivilege()
{
HANDLE hProcess = NULL;
HANDLE hToken = NULL;
LUID uID = {0};
TOKEN_PRIVILEGES stToken_Privileges = {0};
hProcess = ::GetCurrentProcess(); //獲取當前應用程序進程句柄
if(!::OpenProcessToken(hProcess,TOKEN_ADJUST_PRIVILEGES,&hToken)) //打開當前進程的訪問令牌句柄(OpenProcessToken函數調用失敗返回值為零)
{
return FALSE;
}
if(!::LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&uID)) //獲取權限名稱為"SeShutdownPrivilege"的LUID(LookupPrivilegeValue函數調用失敗返回值為零)
{
return FALSE;
}
stToken_Privileges.PrivilegeCount = 1; //欲調整的權限個數
stToken_Privileges.Privileges[0].Luid = uID; //權限的LUID
stToken_Privileges.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; //權限的屬性,SE_PRIVILEGE_ENABLED為使能該權限
if(!::AdjustTokenPrivileges(hToken,FALSE,&stToken_Privileges,sizeof stToken_Privileges,NULL,NULL)) //調整訪問令牌里的指定權限(AdjustTokenPrivileges函數調用失敗返回值為零)
{
return FALSE;
}
if(::GetLastError() != ERROR_SUCCESS) //查看權限是否調整成功
{
return FALSE;
}
::CloseHandle(hToken);
return TRUE;
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。