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