FltGetVolumeProperties and DeviceCharacteristics

Hi,
I use in my minifilter at the instance setup the API FltGetVolumeProperties .
One of the fields that I need in the DeviceCharacteristics.
I saw that this always have a value of zero.
I saw in old threads (from 2004) that microsoft said that this is a bug in the filter manager and it will be fixed.
It seems it still don’t work.
There was a workaround to FltGetDiskDeviceObject and use the Characteristics field from the DeviceObject. I tried it and in my computer I have four volumes. for two the API return success but the Characteristics was zero and for two more the API failed with status STATUS_FLT_NO_DEVICE_OBJECT.
What am I missing?
I need some details about the device: if its ReadOnly, if its a remote device.
The only way I thought of is to use the DeviceType.
Any ideas?
Regards,
Sagi

>I use in my minifilter at the instance setup the API >FltGetVolumeProperties .

One of the fields that I need in the DeviceCharacteristics.
I saw that this always have a value of zero.
I saw in old threads (from 2004) that microsoft said that this is a bug in >the filter manager and it will be fixed.
It seems it still don’t work.
There was a workaround to FltGetDiskDeviceObject and use the >Characteristics field from the DeviceObject. I tried it and in my computer >I have four volumes. for two the API return success but the >Characteristics was zero and for two more the API failed with status >STATUS_FLT_NO_DEVICE_OBJECT.
What am I missing?

Maybe you are getting the error STATUS_FLT_NO_DEVICE_OBJECT for network volumes. You can cross check it by seeing the VolumeDeviceType parameter of your instance setup callback.

I need some details about the device: if its ReadOnly, if its a remote
device. The only way I thought of is to use the DeviceType.
Any ideas?

For detecting a network volume, you can simply simple look at the VolumeDeviceType parameter of your instance setup callback.

You can also get this information from the DeviceType member of the FLT_VOLUME_PROPERTIES structure.

For local volumes you can use FltIsVolumeWritable for finding whether it is read-only or not. I am not sure if it works for network volumes; I have never tried it.

Regards,
Ayush Gupta
http://www.linkedin.com/in/guptaayush

Now surf faster and smarter ! Check out the new Firefox 3 - Yahoo! Edition http://downloads.yahoo.com/in/firefox/?fr=om_email_firefox