PiUEventBroadcastPortsChangedEvent

VOID __stdcall PiUEventBroadcastPortsChangedEvent(UINT64 SessionId, _GUID *EventGuid, WCHAR *DeviceId){
  _ADAPTER_OBJECT *SessionById; 
  UINT64 DesiredAccess; 
  UINT64 Create; 
  UINT64 v7; 
  UINT64 SessionIda; 
  int ExplicitScope; 
  int v10; 
  VOID *Handle; 
  _GUID Buffer; 
  __int128 v13[2]; 

  Handle = 0i64;
  v10 = 0;
  LODWORD(SessionIda) = SessionId;
  Buffer = 0i64;
  LODWORD(DesiredAccess) = 131097;
  memset(v13, 0, sizeof(v13));
  if( CmOpenDeviceRegKey(
         *(&stru_140CF2E80 + 607),
         DeviceId,
         CM_KEY_TYPE_DEVICE_HARDWARE,
         0i64,
         DesiredAccess,
         0,
         &Handle,
         0i64) >= 0 )
  {
    ExplicitScope = 32;
    if( (int)RegRtlQueryValue(Handle, L"PortName", &v10, v13, (__int64)&ExplicitScope) >= 0 )
    {
      Buffer = *EventGuid;
      if( (_DWORD)SessionIda == -1 )
      {
        LODWORD(v7) = 0;
        LODWORD(Create) = 0;
        ZwUpdateWnfStateData(&WNF_PNPA_PORTS_CHANGED, &Buffer, 0x30ui64, 0i64, 0i64, Create, v7);
      }
      else
      {
        SessionById = (_ADAPTER_OBJECT *)MmGetSessionById((unsigned int)SessionIda);
        if( SessionById )
        {
          LODWORD(v7) = 0;
          LODWORD(Create) = 0;
          ZwUpdateWnfStateData(&WNF_PNPA_PORTS_CHANGED_SESSION, &Buffer, 0x30ui64, 0i64, &SessionIda, Create, v7);
          HalPutDmaAdapter(SessionById);
        }
      }
    }
  }
  if( Handle )
    ZwClose((_HANDLE)Handle);
}

Referenced by:

PiUEventBroadcastEventWorker