PopPepGetMinimumDevicePowerState
char __fastcall PopPepGetMinimumDevicePowerState(__int64 a1, char a2, char a3, _DWORD *a4, _DWORD *a5){
char v6;
int v7;
KIRQL CurrentIrql;
unsigned int v11;
_DWORD *v12;
unsigned int v13;
_DWORD *v14;
v6 = 0;
v7 = 1 << a2;
CurrentIrql = KeGetCurrentIrql();
if( a3 )
CurrentIrql = ExAcquireSpinLockShared((PEX_SPIN_LOCK)(a1 + 64));
if( *(_DWORD *)(a1 + 172) == 2 )
{
v11 = 0;
v12 = (_DWORD *)(a1 + 144);
do
{
if( (v7 & *v12) == 0 )
break;
++v11;
++v12;
}
while( v11 < 3 );
*a4 = v11 + 1;
if( a5 )
{
v13 = 0;
v14 = (_DWORD *)(a1 + 156);
do
{
if( (v7 & *v14) == 0 )
break;
++v13;
++v14;
}
while( v13 < 3 );
*a5 = v13 + 1;
}
v6 = 1;
}
if( a3 )
{
ExReleaseSpinLockSharedFromDpcLevel((PEX_SPIN_LOCK)(a1 + 64));
__writecr8(CurrentIrql);
}
return v6;
}Referenced by:
PoFxSetTargetDripsDevicePowerState
PopFxSetDeviceAccountingCsPlatformState
PopPepUpdateDripsDeviceVetoMask