FsRtlNotifyCompleteIrpList
VOID __stdcall FsRtlNotifyCompleteIrpList(_NOTIFY_CHANGE_LITE *Notify, NTSTATUS Status){
unsigned int v2;
_NOTIFY_CHANGE_LITE *v3;
_QWORD *v6;
__int64 v7;
UINT64 CheckCancel;
v2 = Notify[26];
v3 = Notify + 12;
Notify[26] = 0;
*((_WORD *)Notify + 36) &= ~2u;
Notify[27] = 0;
v6 = (_QWORD *)*((_QWORD *)Notify + 6);
do
{
if( (_NOTIFY_CHANGE_LITE *)v6[1] != v3 || (v7 = *v6, *(_QWORD **)(*v6 + 8i64) != v6) )
__fastfail(3u);
*(_QWORD *)v3 = v7;
*(_QWORD *)(v7 + 8) = v3;
*v6 = 0i64;
LODWORD(CheckCancel) = 1;
FsRtlNotifyCompleteIrp((PIRP)(v6 - 21), Notify, v2, Status, CheckCancel);
if( !Status )
break;
v6 = *(_QWORD **)v3;
}
while( *(_NOTIFY_CHANGE_LITE **)v3 != v3 );
}Referenced by:
FsRtlCheckNotifyForDelete
FsRtlCheckNotifyForDeleteLite
FsRtlNotifyFilterReportChange
FsRtlNotifyFilterReportChangeLiteEx