PiDcGenerateConfigNotificationIfContainerRequiresConfiguration

NTSTATUS __stdcall PiDcGenerateConfigNotificationIfContainerRequiresConfiguration(WCHAR *ContainerId){
  NTSTATUS ObjectProperty; 
  NTSTATUS v3; 
  INT64 v5; 
  INT64 v6; 
  __int64 v7[2]; 
  char v8; 
  INT64 v9; 
  int v10; 

  LODWORD(v9) = 0;
  v10 = 0;
  LODWORD(v7[0]) = 0;
  v8 = 0;
  ObjectProperty = PnpGetObjectProperty(
                     *(&stru_140CF2E80 + 1214),
                     (INT64)ContainerId,
                     5i64,
                     0i64,
                     0i64,
                     (INT64)&DEVPKEY_DeviceContainer_IsConnected,
                     (INT64)&v9,
                     (INT64)&v8);
  if( ObjectProperty >= 0 && v8 && (_DWORD)v9 == 17 )
  {
    v3 = PnpGetObjectProperty(
           *(&stru_140CF2E80 + 1214),
           (INT64)ContainerId,
           5i64,
           0i64,
           0i64,
           (INT64)&DEVPKEY_DeviceContainer_ConfigFlags,
           (INT64)&v9,
           (INT64)v7);
    ObjectProperty = v3;
    if( v3 >= 0 )
    {
      if( (_DWORD)v9 != 7 )
        goto LABEL_10;
      if( !LODWORD(v7[0]) )
        return ObjectProperty;
    }
    if( v3 != -1073741275 )
    {
LABEL_9:
      LODWORD(v6) = 0;
      LODWORD(v5) = 0;
      ZwUpdateWnfStateData(&WNF_PNPC_CONTAINER_CONFIG_REQUESTED, 0i64, 0i64, 0i64, 0i64, v5, v6);
      return ObjectProperty;
    }
LABEL_10:
    ObjectProperty = PnpSetObjectProperty(
                       *(&stru_140CF2E80 + 607),
                       (INT64)ContainerId,
                       5u,
                       0i64,
                       0i64,
                       (__int64)&DEVPKEY_DeviceContainer_ConfigFlags,
                       7,
                       (__int64)&unconfiguredConfigFlags,
                       4,
                       0);
    if( ObjectProperty < 0 )
      return ObjectProperty;
    goto LABEL_9;
  }
  return ObjectProperty;
}

Referenced by:

PiDcHandleContainerEvent
PiDcInit