我需要一个C语言源代码
来源:百度知道 编辑:UC知道 时间:2024/06/05 09:32:24
/**-----------------------------------------------------------------------------
* 设置当前程序的权限
*------------------------------------------------------------------------------
*/
VOID SetPriority( LPCTSTR szPrivilegeName, BOOL bSign )
{
DWORD dwCurProcId = GetCurrentProcessId(); //获取当前进程的标识符
HANDLE hCurProc = OpenProcess( PROCESS_ALL_ACCESS, FALSE, dwCurProcId ); //即获取所有可能的权限,不可继承,刚才获得的标识符
HANDLE hToken; //令牌
OpenProcessToken( hCurProc, TOKEN_ADJUST_PRIVILEGES, &hToken );
CloseHandle(hCurProc);
LUID luNum;
LookupPrivilegeValue( NULL, szPrivilegeName, &luNum ); //获取局部唯一标识符LUID-->权限
TOKEN_PRIVILEGES tpStruct; //包含访问令牌的信息
tpStruct.PrivilegeCount = 1;
memcpy( &tpStruct.Privileges[0].Luid, &luNum, sizeof(luNum) );
tpStruct.Privileges[0].Attributes = bSign ? SE_PRIVILEGE_ENABLED : 0;
AdjustTokenPrivileges( hToken, FALSE, &tpStruct, 0, NULL, NULL );
CloseH