PopPepGetComponentVetoMasks
NTSTATUS __fastcall PopPepGetComponentVetoMasks(
PEPHANDLE__ *DpmContext,
UINT64 ComponentIndex,
UINT64 *VetoMasks,
UINT64 IdleStateCount){
PEPHANDLE__ *v4;
PEPHANDLE__ *v5;
PEPHANDLE__ *v7;
__int64 v8;
unsigned __int8 v9;
unsigned __int64 v10;
__int64 v11;
v4 = DpmContext + 16;
v5 = DpmContext;
v7 = DpmContext + 50 * (unsigned int)ComponentIndex;
v8 = 0i64;
v9 = ExAcquireSpinLockShared((INT64 *)DpmContext + 8);
LODWORD(v5) = v5[43];
v10 = v9;
ExReleaseSpinLockSharedFromDpcLevel((PEX_SPIN_LOCK)v4);
LODWORD(v11) = KiIrqlFlags;
__writecr8(v10);
if( (_DWORD)v5 == 2 )
{
if( *((_DWORD *)v7 + 93) )
{
do
{
v11 = *((_QWORD *)v7 + 47);
*((_DWORD *)VetoMasks + v8) = *(_DWORD *)(v11 + 24 * v8 + 16);
v8 = (unsigned int)(v8 + 1);
}
while( (unsigned int)v8 < *((_DWORD *)v7 + 93) );
}
LOBYTE(v8) = 1;
}
LOBYTE(v11) = v8;
return v11;
}Referenced by:
PopFxTraceDeviceRegistration