VOID __stdcall IopAcquireReleaseDispatcherLock(PASSIVE_INTERRUPT_BLOCK *PassiveInterrupt, UINT8 Lock){
_KEVENT *v2;
_ETHREAD *CurrentThread;
v2 = (_KEVENT *)(PassiveInterrupt + 42);
if( Lock )
{
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--CurrentThread->Tcb.KernelApcDisable;
KeWaitForSingleObject((UINT64)v2, 0, 0, 0, 0i64);
}
else
{
KeSetEvent(v2, 0, 0);
KeLeaveCriticalRegionThread(KeGetCurrentThread());
}
}