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