DrvDbBuildDeviceIdDriverInfMatch

NTSTATUS __stdcall DrvDbBuildDeviceIdDriverInfMatch(
        const WCHAR *DriverInfName,
        _DRVDB_DRIVER_INF_MATCH_DATA *DriverInfMatchData,
        WCHAR *DriverInfMatch,
        UINT64 DriverInfMatchLen){
  unsigned __int8 Type; 
  NTSTATUS result; 
  UINT64 v8; 
  WCHAR *v9; 
  UINT64 *p_pcchRemaining; 
  WCHAR *v11; 
  WCHAR **p_ppszDestEnd; 
  UINT64 dwFlags; 
  UINT64 pszFormat; 
  UINT64 pcchRemaining; 
  WCHAR *ppszDestEnd; 

  ppszDestEnd = 0i64;
  pcchRemaining = 0i64;
  Type = DriverInfMatchData->Type;
  if( !DriverInfMatchData->Type )
  {
    LODWORD(pszFormat) = 2048;
    return RtlStringCchCopyExW(
             DriverInfMatch,
             (unsigned int)DriverInfMatchLen,
             (WCHAR *)&dword_1407CF120,
             0i64,
             0i64,
             pszFormat);
  }
  if( Type > 2u )
  {
    if( Type != 3 )
      return -1073741811;
    v8 = (unsigned int)DriverInfMatchLen;
    v9 = L"%ws\\*";
    p_ppszDestEnd = &ppszDestEnd;
    v11 = DriverInfMatch;
    p_pcchRemaining = &pcchRemaining;
LABEL_8:
    LODWORD(dwFlags) = 2048;
    return RtlStringCchPrintfExW(v11, v8, p_ppszDestEnd, p_pcchRemaining, dwFlags, v9);
  }
  LODWORD(dwFlags) = 2048;
  result = RtlStringCchPrintfExW(
             DriverInfMatch,
             (unsigned int)DriverInfMatchLen,
             &ppszDestEnd,
             &pcchRemaining,
             dwFlags,
             (WCHAR *)L"%ws\\%X");
  if( result >= 0 && DriverInfMatchData->FeatureScore != 0xFF )
  {
    v8 = pcchRemaining;
    v9 = (WCHAR *)L"\\%X";
    p_pcchRemaining = 0i64;
    v11 = ppszDestEnd;
    p_ppszDestEnd = 0i64;
    goto LABEL_8;
  }
  return result;
}

Referenced by:

DrvDbGetDeviceIdDriverInfMatches