PnprIsMemoryDevice
char __fastcall PnprIsMemoryDevice(_DEVICE_OBJECT *PhysicalDeviceObject, char a2){
WCHAR *v2;
char v3;
NTSTATUS DeviceInterfaces;
UINT64 Size;
WCHAR *SymbolicLinkList;
char Data;
UINT64 Type;
UINT64 RequiredSize;
LODWORD(RequiredSize) = 0;
v2 = 0i64;
SymbolicLinkList = 0i64;
v3 = 0;
Data = 0;
LODWORD(Type) = 0;
if( !a2 )
{
LODWORD(Size) = 1;
if( IoGetDevicePropertyData(
PhysicalDeviceObject,
(_DEVPROPKEY *)&DEVPKEY_Spare_Memory,
0i64,
0i64,
Size,
&Data,
&RequiredSize,
&Type) < 0
|| (_DWORD)Type != 17
|| !Data )
{
return v3;
}
goto LABEL_8;
}
DeviceInterfaces = IoGetDeviceInterfaces(&GUID_DEVICE_MEMORY, PhysicalDeviceObject, 0i64, &SymbolicLinkList);
v2 = SymbolicLinkList;
if( DeviceInterfaces >= 0 && *SymbolicLinkList )
LABEL_8:
v3 = 1;
if( v2 )
ExFreePoolWithTag(v2, 0);
return v3;
}Referenced by:
PnprAddDeviceResources