irp_nocache vs irp_paging_io

Hi All,

What is the diference between irp_nocache and irp_paging_io?

With Regards,
A.Ilamparithi.

IRP_PAGING_IO means that the IRP is paging i/o, for example if the IRP is
IRP_MJ_WRITE, then it is a paging write and since paging writes are not
cached (are not wriites to file cache), IRP_PAGING_IO implies
IRP_NOCACHE_IO, so to speak.

IRP_NOCACHE_IO, and not IRP_PAGING_IO so to speak, means that the IRP is not
paging i/o, but it is not cached. For example if the IRP is IRP_MJ_WRITE,
then it is not a paging write, and it is non cached (is not a write to file
cache). By way of example the user has opened the handle with CreateFile and
FILE_FLAG_NO_BUFFERING.

There some important differences between these two cases. For example: in
the case of paging i/o certain resources have been pre-acquired, whereas in
the case of non paging i/o these resources have not been pre-acquired;
paging i/o cannot extend the end of file, whereas non paging i/o can extend
the end of file.

This has come up on ntfsd before, a number of times, even in a recent thread
I believe; if you try a search before posting you often get quicker answers.

“A.Ilamparithi” wrote in message news:xxxxx@ntfsd…
> Hi All,
>
> What is the diference between irp_nocache and irp_paging_io?
>
> With Regards,
> A.Ilamparithi.
>
>
>
>
>

IRP_NOCACHE means “do not use the data cache”
IRP_PAGING_IO means “this I/O is on behalf of the VM system”

You will always see IRP_NOCACHE set if IRP_PAGING_IO is set in the
IRP_MJ_READ or IRP_MJ_WRITE operation. You can see IRP_NOCACHE for a
user level I/O operation that should bypass the data cache.

For example, open a file and specify FILE_NO_INTERMEDIATE_BUFFERING and
the I/O operations will be IRP_NOCACHE.

Regards,

Tony

Tony Mason
Consulting Partner
OSR Open Systems Resources, Inc.
http://www.osr.com

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of A.Ilamparithi
Sent: Wednesday, November 03, 2004 1:14 AM
To: ntfsd redirect
Subject: [ntfsd] irp_nocache vs irp_paging_io

Hi All,

What is the diference between irp_nocache and irp_paging_io?

With Regards,
A.Ilamparithi.


Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17

You are currently subscribed to ntfsd as: xxxxx@osr.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Try this: http://www.osronline.com/article.cfm?article=17#Q56

There was also a post on NTDEV last week by Maxim Shatskih explaining IRP_PAGING_IO. Too bad people don’t bother reading the FAQ nor the archives before posting questions on the list…

Razvan

“A.Ilamparithi” wrote:
Hi All,

What is the diference between irp_nocache and irp_paging_io?

With Regards,
A.Ilamparithi.


Questions? First check the IFS FAQ at https://www.osronline.com/article.cfm?id=17

You are currently subscribed to ntfsd as: xxxxx@yahoo.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

---------------------------------
Do you Yahoo!?
Check out the new Yahoo! Front Page. www.yahoo.com/a

IRP_PAGING_IO is always IRP_NOCACHE. The reverse is not true.

IRP_NOCACHE without IRP_PAGING_IO is:

  • allowed to grow the file
  • delivered to the FSD without any FCB locks already held
    This is the difference between it and IRP_PAGING_IO.

Such a request is delivered due to WriteFile to a noncached file.

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

----- Original Message -----
From: “A.Ilamparithi”
Newsgroups: ntfsd
To: “Windows File Systems Devs Interest List”
Sent: Wednesday, November 03, 2004 9:14 AM
Subject: [ntfsd] irp_nocache vs irp_paging_io

> Hi All,
>
> What is the diference between irp_nocache and irp_paging_io?
>
> With Regards,
> A.Ilamparithi.
>
>
>
>
>
> —
> Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17
>
> You are currently subscribed to ntfsd as: xxxxx@storagecraft.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com

Hi,

I tried to create a local IRP and send it down to read the data, when i get
an IRP with NOCACHE is set(paging_io not set).

But, IoCallDriver is always failing and returning me a status of
INVALID_USER_BUFFER.

Why does it happen? Is it not possible to create a irp to read, when i get
an IRP with NOCACHE set(paging_io not set).

With Thanks,
A.Ilamparithi.

“Lyndon J Clarke” wrote in message
news:xxxxx@ntfsd…
> IRP_PAGING_IO means that the IRP is paging i/o, for example if the IRP is
> IRP_MJ_WRITE, then it is a paging write and since paging writes are not
> cached (are not wriites to file cache), IRP_PAGING_IO implies
> IRP_NOCACHE_IO, so to speak.
>
> IRP_NOCACHE_IO, and not IRP_PAGING_IO so to speak, means that the IRP is
not
> paging i/o, but it is not cached. For example if the IRP is IRP_MJ_WRITE,
> then it is not a paging write, and it is non cached (is not a write to
file
> cache). By way of example the user has opened the handle with CreateFile
and
> FILE_FLAG_NO_BUFFERING.
>
> There some important differences between these two cases. For example: in
> the case of paging i/o certain resources have been pre-acquired, whereas
in
> the case of non paging i/o these resources have not been pre-acquired;
> paging i/o cannot extend the end of file, whereas non paging i/o can
extend
> the end of file.
>
> This has come up on ntfsd before, a number of times, even in a recent
thread
> I believe; if you try a search before posting you often get quicker
answers.
>
> “A.Ilamparithi” wrote in message news:xxxxx@ntfsd…
> > Hi All,
> >
> > What is the diference between irp_nocache and irp_paging_io?
> >
> > With Regards,
> > A.Ilamparithi.
> >
> >
> >
> >
> >
>
>
>

Hi,

I tried to create a local IRP and send it down to read the data, when i get
an IRP with NOCACHE is set(paging_io not set).

But, IoCallDriver is always failing and returning me a status of
INVALID_USER_BUFFER.

Why does it happen? Is it not possible to create a irp to read, when i get
an IRP with NOCACHE set(paging_io not set).

With Thanks,
A.Ilamparithi.

“Lyndon J Clarke” wrote in message
news:xxxxx@ntfsd…
> IRP_PAGING_IO means that the IRP is paging i/o, for example if the IRP is
> IRP_MJ_WRITE, then it is a paging write and since paging writes are not
> cached (are not wriites to file cache), IRP_PAGING_IO implies
> IRP_NOCACHE_IO, so to speak.
>
> IRP_NOCACHE_IO, and not IRP_PAGING_IO so to speak, means that the IRP is
not
> paging i/o, but it is not cached. For example if the IRP is IRP_MJ_WRITE,
> then it is not a paging write, and it is non cached (is not a write to
file
> cache). By way of example the user has opened the handle with CreateFile
and
> FILE_FLAG_NO_BUFFERING.
>
> There some important differences between these two cases. For example: in
> the case of paging i/o certain resources have been pre-acquired, whereas
in
> the case of non paging i/o these resources have not been pre-acquired;
> paging i/o cannot extend the end of file, whereas non paging i/o can
extend
> the end of file.
>
> This has come up on ntfsd before, a number of times, even in a recent
thread
> I believe; if you try a search before posting you often get quicker
answers.
>
> “A.Ilamparithi” wrote in message news:xxxxx@ntfsd…
> > Hi All,
> >
> > What is the diference between irp_nocache and irp_paging_io?
> >
> > With Regards,
> > A.Ilamparithi.
> >
> >
> >
> >
> >
>
>
>