CmGetDeviceInterfaceReferenceString

NTSTATUS __stdcall CmGetDeviceInterfaceReferenceString(
        WCHAR *DeviceInterfaceName,
        WCHAR *ReferenceString,
        UINT64 ReferenceStringLength,
        UINT64 *RequiredLength){
  UINT64 v4; 
  int v7; 
  WORD *v8; 
  WCHAR *v9; 
  WORD v10; 
  WCHAR *v11; 
  __int64 v12; 
  unsigned __int64 v13; 
  UINT64 dwFlags; 
  _DWORD *v16; 

  v4 = (unsigned int)RequiredLength;
  v7 = CmValidateDeviceInterfaceName(DeviceInterfaceName);
  if( v7 >= 0 )
  {
    v8 = wcschr(ReferenceString + 4, 92);
    if( v8 )
    {
      v9 = v8 + 1;
      v10 = v8[1];
      v11 = v9;
      while( v10 )
      {
        if( v10 == 92 || v10 == 47 )
        {
          v7 = -1073741767;
          break;
        }
        v10 = *++v11;
      }
      if( v7 >= 0 )
      {
        v12 = -1i64;
        do
          ++v12;
        while( v9[v12] );
        v13 = v12 + 1;
        if( v13 > 0xFFFFFFFF )
        {
          return -1073741675;
        }
        else
        {
          if( v16 )
            *v16 = v13;
          if( (unsigned int)v13 > (unsigned int)v4 )
          {
            return -1073741789;
          }
          else
          {
            LODWORD(dwFlags) = 2304;
            return RtlStringCchCopyExW((WCHAR *)ReferenceStringLength, v4, v9, 0i64, 0i64, dwFlags);
          }
        }
      }
    }
    else
    {
      return -1073741772;
    }
  }
  return v7;
}

Referenced by:

CmGetDeviceInterfaceMappedPropertyFromComposite
IoGetDeviceInterfaceAlias
PiSwCompleteCreate