PiDqConvertObjectTypeToString

NTSTATUS __stdcall PiDqConvertObjectTypeToString(_DEV_OBJECT_TYPE ObjectType, WCHAR **ObjectTypeString){
  NTSTATUS v2; 
  __int32 v3; 
  __int32 v4; 
  __int32 v5; 
  __int32 v6; 
  WCHAR *v7; 
  __int32 v8; 
  __int32 v9; 
  __int32 v10; 
  __int32 v11; 

  v2 = 0;
  *ObjectTypeString = 0i64;
  if( ObjectType > DevObjectTypeAEPContainer )
  {
    v8 = ObjectType - 7;
    if( !v8 )
    {
      v7 = L"DeviceInstallerClass";
      goto LABEL_27;
    }
    v9 = v8 - 1;
    if( !v9 )
    {
      v7 = L"DeviceInterfaceDisplay";
      goto LABEL_27;
    }
    v10 = v9 - 1;
    if( !v10 )
    {
      v7 = L"DeviceContainerDisplay";
      goto LABEL_27;
    }
    v11 = v10 - 1;
    if( !v11 )
    {
      v7 = L"AEPService";
      goto LABEL_27;
    }
    if( v11 == 1 )
    {
      v7 = L"DevicePanel";
      goto LABEL_27;
    }
  }
  else
  {
    if( ObjectType == DevObjectTypeAEPContainer )
    {
      v7 = L"AEPContainer";
      goto LABEL_27;
    }
    if( ObjectType == DevObjectTypeUnknown )
    {
      v7 = (WCHAR *)L"Unknown";
      goto LABEL_27;
    }
    v3 = ObjectType - 1;
    if( !v3 )
    {
      v7 = L"DeviceInterface";
      goto LABEL_27;
    }
    v4 = v3 - 1;
    if( !v4 )
    {
      v7 = L"DeviceContainer";
      goto LABEL_27;
    }
    v5 = v4 - 1;
    if( !v5 )
    {
      v7 = (WCHAR *)L"Device";
      goto LABEL_27;
    }
    v6 = v5 - 1;
    if( !v6 )
    {
      v7 = L"DeviceInterfaceClass";
      goto LABEL_27;
    }
    if( v6 == 1 )
    {
      v7 = L"AEP";
LABEL_27:
      *ObjectTypeString = v7;
      return v2;
    }
  }
  return -1073741811;
}

Referenced by:

PiDqIrpQueryCreate