|

楼主 |
发表于 2011-8-5 14:36:20
|
显示全部楼层
HANDLE hToken;
TOKEN_PRIVILEGES tp;
LUID luid;
if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY | TOKEN_READ,&hToken))
{
return FALSE;
}
if(!LookupPrivilegeValue(NULL, PrivilegeName, &luid))
{
return FALSE;
}
tp.PrivilegeCount = 1;
tp.Privileges[0].Luid = luid;
tp.Privileges[0].Attributes = (IsEnable) ? SE_PRIVILEGE_ENABLED : 0;
BOOL bSucc = AdjustTokenPrivileges(hToken,FALSE,&tp,NULL,NULL,NULL);
CloseHandle(hToken);
return (GetLastError() == ERROR_SUCCESS);
函数用法:定义权限函数
函数原理:这个函数首先用 OpenProcessToken 获得当前进程访问令牌的句柄,然后调用 LookupPrivilegeValue 得到相应权限的标识符,然后用 AdjustTokenPrivileges 来激活程序的权限。
|
|