PopCreateNotificationName

NTSTATUS __stdcall PopCreateNotificationName(_WNF_STATE_NAME *StateName){
  UINT64 v1; 
  NTSTATUS result; 
  UINT64 NewType; 
  _UNICODE_STRING CapName; 
  __int128 SecurityDescriptor[2]; 
  __int64 v7; 
  char CapabilitySid[48]; 
  char CapabilityGroupSid[56]; 
  _ACL Acl; 

  *(_QWORD *)&CapName.Length = 2752552i64;
  v7 = 0i64;
  CapName.Buffer = L"lpacPnpNotifications";
  memset(SecurityDescriptor, 0, sizeof(SecurityDescriptor));
  RtlCreateAcl(&Acl, (_ACL)328i64, 2ui64, v1);
  RtlpAddKnownAce(&Acl, 2ui64, 0i64, 0x1F0003ui64, SeLocalSystemSid, 0);
  RtlpAddKnownAce(&Acl, 2ui64, 0i64, 0x120001ui64, SeWorldSid, 0);
  RtlpAddKnownAce(&Acl, 2ui64, 0i64, 0x120001ui64, SeAllAppPackagesSid, 0);
  result = RtlDeriveCapabilitySidsFromName(&CapName, CapabilityGroupSid, CapabilitySid);
  if( result >= 0 )
  {
    RtlpAddKnownAce(&Acl, 2ui64, 0i64, 0x120001ui64, CapabilitySid, 0);
    RtlCreateSecurityDescriptor(SecurityDescriptor, 1ui64);
    RtlSetDaclSecurityDescriptor(SecurityDescriptor, 1u, &Acl, 0);
    LODWORD(NewType) = 36;
    return ZwCreateWnfStateName(
             StateName,
             WnfTemporaryStateName,
             WnfDataScopeMachine,
             0,
             0i64,
             NewType,
             SecurityDescriptor);
  }
  return result;
}

Referenced by:

PopGetSettingNotificationName