struct _COMPRESSED_DATA_INFO

Hi

I note that the FastIo*Compressed* functions have an argument
IN struct _COMPRESSED_DATA_INFO *CompressedDataInfo,
but it looks like this struct is not defined. Are these FastIo entry
points used? I want to support compressed files in my fiter driver - do I
need to handle these (if they are called)? If so, anyone know what is this
struct?

Cheers
Lyndon

The four FastIo compression routines are not presently called by NT. It
is recommended that filters implement the proper pass-through logic so
that if we start using them they will function as expected.

Valid pass-through logic is available in the SFilter and FileSpy samples
of the XP (and later) IFSkit.

Following is a comment from the SFilter sample explaining the 4 FastIO
compression routines:

/********************************************************************
UNIMPLEMENTED FAST IO ROUTINES

The following four Fast IO routines are for compression on the
wire
which is not yet implemented in NT.

NOTE: It is highly recommended that you include these routines
(which do a pass-through call) so your filter will
not need
to be modified in the future when this functionality
is
implemented in the OS.

FastIoReadCompressed, FastIoWriteCompressed,
FastIoMdlReadCompleteCompressed,
FastIoMdlWriteCompleteCompressed
***********************************************************************/

Neal Christiansen
Microsoft File System Filter Group

This posting is provided “AS IS” with no warranties, and confers no
rights.

-----Original Message-----
From: Lyndon J. Clarke [mailto:xxxxx@gcplc.com]
Sent: Monday, February 10, 2003 10:47 AM
To: File Systems Developers

Hi

I note that the FastIo*Compressed* functions have an argument
IN struct _COMPRESSED_DATA_INFO *CompressedDataInfo,
but it looks like this struct is not defined. Are these FastIo entry
points used? I want to support compressed files in my fiter driver - do
I
need to handle these (if they are called)? If so, anyone know what is
this
struct?

Cheers
Lyndon


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

Thanks, its the perfect answer :slight_smile: The other thing I noticed was
IRP_MN_COMPRESSED. Can this be used for example with IRP_MJ_WRITE? What
does it all mean?

IRP_MN_COMPRESSED is the IRP part of the fast I/O functions. In this case,
the compression header (which is the COMPRESSED_DATA_INFO) is passed in
Irp->AssociatedIrp.SystemBuffer and the compressed data is passed in
Irp->MdlAddress.

Note that the IRP_MN_* options for read and write are BITS, and are OR-ed
together to get the correct behavior - so IRP_MN_MDL | IRP_MN_COMPRESSED is
what you’d expect in the “read/write compressed” case, and IRP_MN_MDL |
IRP_MN_COMPRESSED | IRP_MN_COMPLETE would be what you expect when they are
released.

The potential for these to be enabled is long-standing, but has yet to be
materialized. That’s unfortunate, since it is clearly a win - do the
decompression on the client AFTER the data has been sent across the wire.
Less CPU load on the server, less utilization of the network and better
overall performance. I’m sure there are valid technical reasons it has not
yet been enabled, of course.

Regards,

Tony

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

-----Original Message-----
From: Lyndon J. Clarke [mailto:xxxxx@gcplc.com]
Sent: Tuesday, February 11, 2003 4:38 AM
To: File Systems Developers
Subject: [ntfsd] RE: struct _COMPRESSED_DATA_INFO

Thanks, its the perfect answer :slight_smile: The other thing I noticed was
IRP_MN_COMPRESSED. Can this be used for example with IRP_MJ_WRITE? What
does it all mean?


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

Hi Tony. Thanks for this information. It looks like I can punt on this bit
at the moment. Which is good! Cheers, Lyndon.