About IRP_PAGING_IO in IRM_MJ_READ/WRITE

I was writing a “sfilter” liked file system filter driver.Now have some question.

see the follow scenes:

A:
1.application call CreateFile,ReadFile/WriteFile API,
2.IO manager deliver a IRP with cache IO.
3.In sfilter, IRM_MJ_WRITE/READ process routine, we got the irp. and send the IRP to FileSystem.
4.FileSystem call Cache Manager to get the date.
5.Cache Manager then cause a IRP with Paging IO to sfilter.

B:
1.application call CreateFileMapping/MapViewOfFile
2.somebody deliver a IRP with Pageing IO.
3.sfilter got the IRP.

what are the differences between these two scenes.how can I make a distinction between these two Pageing IO irp?

> what are the differences between these two scenes.how can I make a distinction between these two

Pageing IO irp?

Both are noncached paging IO, but, in case of Cc, the AcquireForXxx callback will be called first before submitting the IRP, and the IRP will be submitted by the thread which did this call.


Maxim S. Shatskih
Windows DDK MVP
xxxxx@storagecraft.com
http://www.storagecraft.com