MI_PAGEFILE_WRITE
VOID __stdcall MI_PAGEFILE_WRITE(
_MMMOD_WRITER_MDL_ENTRY *ModWriterEntry,
_LARGE_INTEGER *CurrentTime,
_IO_PAGING_PRIORITY IrpPriority,
UINT64 ReservationWrite,
INT64 Status){
_MI_PARTITION *Partition;
__int64 v7;
char Priority;
Partition = ModWriterEntry->PagingFile->Partition;
v7 = ((unsigned __int8)_InterlockedExchangeAdd(&Partition->Vp.PageFileTraceIndex, 1u) + 1) & 0x1F;
Partition->Vp.PageFileTraces[v7].Status = Status;
Priority = KeGetCurrentThread()->Priority;
Partition->Vp.PageFileTraces[v7].ReservationWrite = (_DWORD)ReservationWrite != 0;
Partition->Vp.PageFileTraces[v7].Priority = Priority;
Partition->Vp.PageFileTraces[v7].IrpPriority = IrpPriority;
Partition->Vp.PageFileTraces[v7].CurrentTime = *CurrentTime;
Partition->Vp.PageFileTraces[v7].PartitionId = Partition->Core.PartitionId;
Partition->Vp.PageFileTraces[v7].AvailablePages = Partition->Vp.AvailablePages;
Partition->Vp.PageFileTraces[v7].ModifiedPagesTotal = Partition->Vp.ModifiedPageListHead.Total;
Partition->Vp.PageFileTraces[v7].ModifiedPagefilePages = Partition->Vp.TotalPagesForPagingFile;
Partition->Vp.PageFileTraces[v7].ModifiedNoWritePages = Partition->Vp.ModifiedNoWritePageListHead.Total;
Partition->Vp.PageFileTraces[v7].ModifiedPagefileNoReservationPages = Partition->PageLists.ModifiedPageListNoReservation.Total;
Partition->Vp.PageFileTraces[v7].MdlHack.Mdl = ModWriterEntry->Mdl;
Partition->Vp.PageFileTraces[v7].MdlHack.Page[0] = ModWriterEntry->Page[0];
}Referenced by:
MiGatherPagefilePages
MiWriteComplete