PopHaltDeviceIdle
INT64 __stdcall PopHaltDeviceIdle(){
UINT64 v0;
__int128 *v1;
unsigned __int8 v2;
unsigned __int64 v3;
INT64 result;
__int128 v5;
__int64 v6;
v1 = 0i64;
v5 = 0i64;
v6 = 0i64;
KeAcquireSpinLockRaiseToDpc(&PopDopeGlobalLock, v0);
v3 = v2;
byte_140C502F4 = 1;
if( dword_140C502F0 )
{
DWORD1(v5) = 0;
v6 = (__int64)&v5 + 8;
v1 = &v5;
LOWORD(v5) = 1;
*((_QWORD *)&v5 + 1) = (char *)&v5 + 8;
PopDeviceIdleSync = (PRKEVENT)&v5;
BYTE2(v5) = 6;
}
KxReleaseSpinLock(&PopDopeGlobalLock);
result = (unsigned int)KiIrqlFlags;
__writecr8(v3);
if( v1 )
LODWORD(result) = KeWaitForSingleObject(v1, Executive, 0, 0, 0i64);
return result;
}Referenced by:
PoInitializeBroadcast