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