IoUnregisterFsRegistrationChange
NTSTATUS __fastcall IoUnregisterFsRegistrationChange(UINT64 a1, INT64 a2, INT64 a3){
_ETHREAD *CurrentThread;
_QWORD *i;
NTSTATUS result;
_QWORD *v8;
_QWORD *v9;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--CurrentThread->Tcb.KernelApcDisable;
ExAcquireResourceExclusiveLite((UINT64)&stru_140C452E0 + 1280, 1, a3);
for( i = (_QWORD *)*(&stru_140C452E0 + 208); i != (_QWORD *)((char *)&stru_140C452E0 + 1664); i = (_QWORD *)*i )
{
if( i[2] == a1 && i[3] == a2 )
{
v8 = (_QWORD *)*i;
if( *(_QWORD **)(*i + 8i64) != i || (v9 = (_QWORD *)i[1], (_QWORD *)*v9 != i) )
__fastfail(3u);
*v9 = v8;
v8[1] = v9;
ExFreePoolWithTag(i, 0);
break;
}
}
ExReleaseResourceLite((PERESOURCE)((char *)&stru_140C452E0 + 1280));
KeLeaveCriticalRegionThread(KeGetCurrentThread());
HalPutDmaAdapter((PADAPTER_OBJECT)a1);
return result;
}Referenced by:
No references.