OpenProcessToken,LookupPrivilegeValue,AdjustTokenPrivileges

来源:百度知道 编辑:UC知道 时间:2024/05/14 12:20:51
我要这三个函数的参数详解(最好是delphi的),特别是里面结构体的解释,谢谢大家

BOOL WINAPI OpenProcessToken(
__in HANDLE ProcessHandle,
__in DWORD DesiredAccess,
__out PHANDLE TokenHandle
);

分别是进城句柄,访问权(一般用TOKEN_ALL_ACCESS),返回的Token句柄

BOOL WINAPI LookupPrivilegeValue(
__in_opt LPCTSTR lpSystemName,
__in LPCTSTR lpName,
__out PLUID lpLuid
);

第一个如果是本地直接写0,第二个是权限的名字,第三个是返回的权限ID

BOOL WINAPI AdjustTokenPrivileges(
__in HANDLE TokenHandle,
__in BOOL DisableAllPrivileges,
__in_opt PTOKEN_PRIVILEGES NewState,
__in DWORD BufferLength,
__out_opt PTOKEN_PRIVILEGES PreviousState,
__out_opt PDWORD ReturnLength
);

第一个是你OpenProcessToken获得的句柄
第二个是是否要关掉所有的权限
第三个是你需要修改的权限列表
后三个用来保存原来的权限列表,一般都设成0就可以

权限列表:
typedef struct _TOKEN_PRIVILEGES {
DWORD PrivilegeCount;
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
} TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES;
分别是要修改权限的个数和具体内容。
ty