CmOpenDeviceInterfaceRegKey
__int64 __fastcall CmOpenDeviceInterfaceRegKey(
__int64 a1,
const WCHAR *a2,
unsigned int a3,
__int64 a4,
int a5,
char a6,
__int64 a7,
_DWORD *a8){
__int64(__fastcall *v11)(__int64, const WCHAR *, __int64);
int v12;
int v13;
int v14;
int v16;
int v17;
int v18;
INT64 result[2];
int v20;
int v21;
int v22;
char v23;
void **v24;
int v25[14];
memset((INT64)result, 0i64);
v11 = *(__int64(__fastcall **)(__int64, const WCHAR *, __int64))(a1 + 504);
v21 = 0;
v22 = a5;
v20 = a3;
v23 = a6;
v24 = (void **)a7;
if( v11 )
{
v12 = v11(a1, a2, 3i64);
if( v12 == -1073741822 )
{
v11 = 0i64;
}
else
{
if( v12 == -1073741536 )
{
LABEL_12:
v14 = result[0];
goto LABEL_5;
}
if( v12 )
return(unsigned int)-1073741595;
}
}
v13 = CmOpenDeviceInterfaceRegKeyWorker(a1, a2, v20, v21, v22, v23, v24, v25);
v14 = v13;
if( v11 )
{
LODWORD(result[0]) = v13;
v16 = v11(a1, a2, 3i64);
v17 = v16;
if( v16 != -1073741822 )
{
if( v16 != -1073741536 )
{
v18 = v14;
if( v17 )
v18 = -1073741595;
v14 = v18;
goto LABEL_5;
}
goto LABEL_12;
}
}
LABEL_5:
if( v14 >= 0 && a8 )
*a8 = v25[0];
return(unsigned int)v14;
}Referenced by:
CmCreateDeviceInterfaceWorker
CmDeleteDeviceInterfaceMappedPropertyFromRegValue
CmDeleteDeviceInterfaceRegKeyWorker
CmGetDeviceInterfaceMappedPropertyFromRegValue
CmOpenDeviceInterfaceRegKeyWorker
CmSetDeviceInterfaceMappedPropertyFromRegValue
IoGetDeviceInterfaceAlias
IoOpenDeviceInterfaceRegistryKey
IopGetDeviceInterfaces
PiCMOpenDeviceInterfaceKey
PiDevCfgConfigureDeviceInterface
PnpDispatchDeviceInterface