PiAuDoesClientHavePrivilege
UINT8 __stdcall PiAuDoesClientHavePrivilege(UINT64 Privilege){
INT8 v1;
UINT8 v2;
struct _SECURITY_SUBJECT_CONTEXT SubjectContext;
struct _PRIVILEGE_SET RequiredPrivileges;
RequiredPrivileges.Privilege[0].Attributes = 0;
v1 = *((_BYTE *)KeGetCurrentThread() + 562);
RequiredPrivileges.PrivilegeCount = 1;
RequiredPrivileges.Control = 1;
RequiredPrivileges.Privilege[0].Luid = (_LUID)(unsigned int)Privilege;
memset(&SubjectContext, 0, sizeof(SubjectContext));
SeCaptureSubjectContext(&SubjectContext);
v2 = SePrivilegeCheck(&RequiredPrivileges, &SubjectContext, v1);
SeReleaseSubjectContext(&SubjectContext);
return v2;
}Referenced by:
PiCMDeviceAction
PiCMQueryRemove
PiCMSetDeviceProblem