PiAuDoesClientHavePrivilege
UINT8 __stdcall PiAuDoesClientHavePrivilege(UINT64 Privilege){
char PreviousMode;
INT8 v2;
_SECURITY_SUBJECT_CONTEXT SubjectContext;
PRIVILEGE_SET RequiredPrivileges;
RequiredPrivileges.Privilege[0].Attributes = 0;
PreviousMode = KeGetCurrentThread()->PreviousMode;
RequiredPrivileges.PrivilegeCount = 1;
RequiredPrivileges.Control = 1;
RequiredPrivileges.Privilege[0].Luid = (_LUID)(unsigned int)Privilege;
memset(&SubjectContext, 0, sizeof(SubjectContext));
SeCaptureSubjectContext((INT64)&SubjectContext);
v2 = SePrivilegeCheck((UINT64 *)&RequiredPrivileges.PrivilegeCount, (INT64)&SubjectContext, PreviousMode);
SeReleaseSubjectContext(&SubjectContext);
return v2;
}Referenced by:
PiCMDeviceAction
PiCMQueryRemove
PiCMSetDeviceProblem