PnprQueryReplaceFeatures
__int64 __fastcall PnprQueryReplaceFeatures(__int64 a1, PDEVICE_OBJECT *a2){
int v2;
unsigned int v3;
unsigned int v4;
__int64 result;
INTERFACE Interface;
__int128 v7;
__int64 v8;
int v9;
v2 = *(_DWORD *)(a1 + 8);
v3 = 0;
v9 = 0;
v8 = 0i64;
memset(&Interface, 0, sizeof(Interface));
v7 = 0i64;
if( (v2 & 4) != 0 )
{
v4 = 8;
}
else
{
v4 = 0;
if( (v2 & 8) != 0 )
v4 = 16;
}
result = v4 | 0x20;
if( (v2 & 0x10) == 0 )
result = v4;
if( !(_DWORD)result )
{
if( PnpQueryInterface(*a2, &GUID_PARTITION_UNIT_INTERFACE_STANDARD, 1u, 0x38u, 0i64, &Interface) >= 0 )
{
if( (*((int(__fastcall **)(void *, int *))&v7 + 1))(Interface.Context, &v9) >= 0 )
{
if( (v9 & 1) != 0 )
{
v3 = 8;
}
else if( (v9 & 2) != 0 )
{
v3 = 16;
}
if( (v9 & 4) != 0 )
v3 |= 0x20u;
}
Interface.InterfaceDereference(Interface.Context);
return v3;
}
else
{
return 0i64;
}
}
return result;
}Referenced by:
No references.