MiStoreModifiedWriteDereference
VOID __stdcall MiStoreModifiedWriteDereference(_MMMOD_WRITER_MDL_ENTRY *ModWriterEntry){
_MI_PARTITION *Partition;
unsigned __int64 ByteCount;
if( _InterlockedExchangeAdd((volatile signed __int32 *)&ModWriterEntry->StoreWriteRefCount, 0xFFFFFFFF) == 1 )
{
Partition = ModWriterEntry->Partition;
ByteCount = ModWriterEntry->Mdl.ByteCount;
ModWriterEntry->u.IoStatus.Status = 0;
ModWriterEntry->u.IoStatus.Information = ByteCount;
KeInitializeApc(
(INT64)&ModWriterEntry->StoreWriteCompletionApc,
(INT64)Partition->Modwriter.ModifiedPageWriterThread,
0i64,
(INT64)MiStoreWriteModifiedCompleteApc,
0i64,
0i64,
0,
0i64);
KeInsertQueueApc((INT64)&ModWriterEntry->StoreWriteCompletionApc, (INT64)ModWriterEntry, 0i64, 0i64);
}
}Referenced by:
MiStoreWriteModifiedPages
SmIoRequestComplete