PopFxFindAndReferenceAcpiDevice
NTSTATUS __stdcall PopFxFindAndReferenceAcpiDevice(POP_FX_DEVICE *InputFxDevice){
_ETHREAD *CurrentThread;
NTSTATUS v3;
char *i;
UINT64 RemlockSize;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
v3 = -1073741810;
--CurrentThread->Tcb.KernelApcDisable;
ExAcquirePushLockSharedEx((_EX_PUSH_LOCK *)&stru_140C23628 + 489, 0i64);
for( i = (char *)*(&stru_140C23628 + 491); i != (char *)&stru_140C23628 + 3928; i = *(char **)i )
{
if( i - 200 == (char *)InputFxDevice )
{
LODWORD(RemlockSize) = 32;
v3 = IoAcquireRemoveLockEx((_IO_REMOVE_LOCK *)(i + 72), (VOID *)0x66466F50, (CHAR *)&File, 1ui64, RemlockSize);
break;
}
}
if( _InterlockedCompareExchange64((_QWORD *)&stru_140C23628 + 489, 0i64, 17i64) != 17 )
ExfReleasePushLockShared((_EX_PUSH_LOCK *)&stru_140C23628 + 489);
KeAbPostRelease((char *)&stru_140C23628 + 3912);
KeLeaveCriticalRegionThread(KeGetCurrentThread());
return v3;
}Referenced by:
PopFxAcpiForwardPepAcpiNotifyRequest