PopFxIsDevicePotentialDripsConstraint
INT64 __stdcall PopFxIsDevicePotentialDripsConstraint(PVOID Object){
bool v1;
__int64 v3;
KIRQL v4;
INT64 result;
__int64 Str1;
Str1 = 0i64;
v1 = 0;
ObfReferenceObjectWithTag(Object, 0x78466F50u);
if( Object )
v3 = *(_QWORD *)(*((_QWORD *)Object + 39) + 40i64);
else
v3 = 0i64;
if( v3 )
{
v4 = ExAcquireSpinLockExclusive((PEX_SPIN_LOCK)(v3 + 88));
_m_prefetchw((const void *)(v3 + 296));
if( (_InterlockedOr((volatile signed __int32 *)(v3 + 296), 0) & 4) != 0 )
v1 = (_InterlockedCompareExchange((volatile signed __int32 *)(*(_QWORD *)(v3 + 80) + 824i64), 0, 0) & 0x10) != 0;
ExReleaseSpinLockExclusive((PEX_SPIN_LOCK)(v3 + 88), v4);
if( !v1 )
IoGetDevicePropertyData(*(DEVICE_OBJECT **)(v3 + 32), (DEVPROPKEY *)&DEVPKEY_Device_EnumeratorName, 0i64, 0i64);
}
LODWORD(result) = ObfDereferenceObjectWithTag(Object, 0x78466F50ui64);
LOBYTE(result) = v1;
return result;
}Referenced by:
NtPowerInformation