CmGetDeviceMappedProperty

__int64 __fastcall CmGetDeviceMappedProperty(
        __int64 a1,
        wchar_t *a2,
        void *a3,
        __int64 a4,
        __int64 a5,
        int *a6,
        wchar_t *a7,
        unsigned int a8,
        unsigned int *a9,
        int a10){
  unsigned int DeviceMappedPropertyFromRegProp; 
  DEVPROPKEY **v13; 
  unsigned int v14; 
  DEVPROPKEY *v15; 
  DEVPROPKEY **v16; 
  unsigned int v17; 
  DEVPROPKEY *v18; 
  DEVPROPKEY **v19; 
  unsigned int v20; 
  DEVPROPKEY *v21; 
  __int64 v22; 
  __int64 v24; 
  __int64 v25; 
  DeviceMappedPropertyFromRegProp = -1073741802;
  if( (_WORD)a10 )
  {
    return(unsigned int)-1073741811;
  }
  else
  {
    *a9 = 0;
    if( !a4 )
    {
      v13 = &CmDeviceRegPropMap;
      v14 = 0;
      while( 1 )
      {
        v15 = *v13;
        if( *(_DWORD *)(a5 + 16) == (*v13)->pid )
        {
          v24 = *(_QWORD *)a5 - *(_QWORD *)&v15->fmtid.Data1;
          if( *(_QWORD *)a5 == *(_QWORD *)&v15->fmtid.Data1 )
            v24 = *(_QWORD *)(a5 + 8) - *(_QWORD *)v15->fmtid.Data4;
          if( !v24 )
            break;
        }
        ++v14;
        v13 += 3;
        if( v14 >= 0x21 )
          goto LABEL_6;
      }
      DeviceMappedPropertyFromRegProp = CmGetDeviceMappedPropertyFromRegProp(
                                          a1,
                                          a2,
                                          (__int64)a3,
                                          a5,
                                          a6,
                                          a7,
                                          a8,
                                          a9,
                                          a10);
      if( DeviceMappedPropertyFromRegProp != -1073741802 )
        return DeviceMappedPropertyFromRegProp;
LABEL_6:
      v16 = &off_140983E70;
      v17 = 0;
      while( 1 )
      {
        v18 = *v16;
        if( *(_DWORD *)(a5 + 16) == (*v16)->pid )
        {
          v25 = *(_QWORD *)a5 - *(_QWORD *)&v18->fmtid.Data1;
          if( *(_QWORD *)a5 == *(_QWORD *)&v18->fmtid.Data1 )
            v25 = *(_QWORD *)(a5 + 8) - *(_QWORD *)v18->fmtid.Data4;
          if( !v25 )
            break;
        }
        ++v17;
        v16 += 4;
        if( v17 >= 2 )
          goto LABEL_9;
      }
      DeviceMappedPropertyFromRegProp = CmGetDeviceMappedPropertyFromInstanceKeyRegValue(
                                          a1,
                                          a2,
                                          a3,
                                          a5,
                                          (__int64)a6,
                                          (__int64)a7,
                                          a8,
                                          a9);
      if( DeviceMappedPropertyFromRegProp != -1073741802 )
        return DeviceMappedPropertyFromRegProp;
LABEL_9:
      v19 = &off_140985E60;
      v20 = 0;
      while( 1 )
      {
        v21 = *v19;
        if( *(_DWORD *)(a5 + 16) == (*v19)->pid )
        {
          v22 = *(_QWORD *)a5 - *(_QWORD *)&v21->fmtid.Data1;
          if( *(_QWORD *)a5 == *(_QWORD *)&v21->fmtid.Data1 )
            v22 = *(_QWORD *)(a5 + 8) - *(_QWORD *)v21->fmtid.Data4;
          if( !v22 )
            break;
        }
        ++v20;
        v19 += 2;
        if( v20 >= 0x1B )
          return DeviceMappedPropertyFromRegProp;
      }
      return(unsigned int)CmGetDeviceMappedPropertyFromComposite(a1, a2, (char *)a3, a5, a6, a7, a8, a9, a10);
    }
  }
  return DeviceMappedPropertyFromRegProp;
}

Referenced by:

PnpDispatchDevice