IOCTL_DISK_GET_CLUSTER_INFO or IOCTL_VOLUME_IS_CSV, or check VolumeFilesystemType?

Hi,
We have some code in our minifilter driver that is trying to detect whether a volume is a cluster shared volume or not.

It does this:

  1. if VolumeFilesystemType as passed in to the InstanceSetup is FLT_FSTYPE_CSVFS, then it’s a CSV.
  2. else, if VolumeFilesystemType is FLT_FSTYPE_NTFS, then
    issue an IOCTL_DISK_GET_CLUSTER_INFO and check the returned structure’s Flags
    for the DISK_CLUSTER_FLAG_CSV bit. If set then it’s a CSV.
  3. Else it’s not a CSV.

This worked just fine, until we hit a customer with a Veritas Storage Foundation for Windows Volume which is integrated with MS Failover Clustering. That volume falls into category (2) above and the DISK_CLUSTER_FLAG_CSV bit is set. Without integrating the SFW volume with MS Failover clustering it is however NOT set and works fine.

I tried switching to use IOCTL_VOLUME_IS_CSV, which works for that integrated volume, but I’m having trouble now finding other real CSV volumes that have a VolumeFilesystemType of FLT_FSTYPE_NTFS to test to make sure I don’t break that. (I’m not the original dev on this).

Any suggestions? Would that perhaps be a raw volume that’s a CSV?