ExpWnfCheckCallerAccess

NTSTATUS __stdcall ExpWnfCheckCallerAccess(VOID *SecurityDescriptor, UINT64 DesiredAccess){
  _ACCESS_MASK v2; 
  _KPROCESSOR_MODE AccessMode; 
  _SECURITY_SUBJECT_CONTEXT SubjectSecurityContext; 
  int AccessStatus; 
  unsigned int GrantedAccess; 

  GrantedAccess = 0;
  AccessStatus = 0;
  v2 = DesiredAccess;
  memset(&SubjectSecurityContext, 0, sizeof(SubjectSecurityContext));
  if( !(_DWORD)DesiredAccess )
    return 0;
  SeCaptureSubjectContext((INT64)&SubjectSecurityContext);
  LOBYTE(AccessMode) = 1;
  SeAccessCheck(
    SecurityDescriptor,
    &SubjectSecurityContext,
    0,
    v2,
    0,
    0i64,
    (PGENERIC_MAPPING)&ExpWnfNotificationMapping,
    AccessMode,
    &GrantedAccess,
    &AccessStatus);
  SeReleaseSubjectContext(&SubjectSecurityContext);
  return AccessStatus;
}

Referenced by:

ExpNtDeleteWnfStateData
ExpWnfCheckCrossScopeAccess
ExpWnfSubscribeWnfStateChange
ExpWnfValidatePubSubPreconditions
NtDeleteWnfStateName
NtQueryWnfStateNameInformation