PspJobIoRateControlDisable
NTSTATUS __fastcall PspJobIoRateControlDisable(_EJOB *Job){
NTSTATUS v1;
_PS_IO_CONTROL_ENTRY *Flink;
_LIST_ENTRY *v5;
_LIST_ENTRY ListHead;
v1 = 0;
if( *((_QWORD *)Job + 180) )
{
PspIoRateEntryDeactivate((_PS_IO_CONTROL_ENTRY *)Job + 25);
v1 = 1;
}
ListHead.Blink = &ListHead;
ListHead.Flink = &ListHead;
PspJobIoRateVolumeEntryRemoveAll(Job, &ListHead);
while( 1 )
{
Flink = (_PS_IO_CONTROL_ENTRY *)ListHead.Flink;
if( ListHead.Flink == &ListHead )
break;
if( ListHead.Flink->Blink != &ListHead
|| (v5 = ListHead.Flink->Flink, ListHead.Flink->Flink->Blink != ListHead.Flink) )
{
__fastfail(3u);
}
ListHead.Flink = ListHead.Flink->Flink;
v5->Blink = &ListHead;
PspIoRateEntryDeactivate(Flink);
ExFreePoolWithTag(Flink, 0);
++v1;
}
return v1;
}Referenced by:
PspJobDelete
PspSetJobIoRateControl