IN PCWSTR FsName,
IN PCWSTR RecognizerName,
IN ULONG FsType,
- IN DEVICE_TYPE DeviceType)
+ IN DEVICE_TYPE DeviceType,
+ IN ULONG AdditionalFlags)
{
OBJECT_ATTRIBUTES ObjectAttributes;
IO_STATUS_BLOCK IoStatus;
&DeviceObject);
if (NT_SUCCESS(Status))
{
+ /* Set additional flags in the device object */
+ DeviceObject->Flags |= AdditionalFlags;
+
/* Get the device extension and set it up */
DeviceExtension = DeviceObject->DeviceExtension;
DeviceExtension->FsType = FsType;
L"\\Cdfs",
L"\\FileSystem\\CdfsRecognizer",
FS_TYPE_CDFS,
- FILE_DEVICE_CD_ROM_FILE_SYSTEM);
+ FILE_DEVICE_CD_ROM_FILE_SYSTEM,
+ DO_LOW_PRIORITY_FILESYSTEM);
if (NT_SUCCESS(Status)) DeviceCount++;
/* Register CDFS for HDDs */
L"\\CdfsHdd",
L"\\FileSystem\\CdfsHddRecognizer",
FS_TYPE_CDFS,
- FILE_DEVICE_DISK_FILE_SYSTEM);
+ FILE_DEVICE_DISK_FILE_SYSTEM,
+ DO_LOW_PRIORITY_FILESYSTEM);
if (NT_SUCCESS(Status)) DeviceCount++;
/* Register UDFS for CDs */
L"\\UdfsCdRom",
L"\\FileSystem\\UdfsCdRomRecognizer",
FS_TYPE_UDFS,
- FILE_DEVICE_CD_ROM_FILE_SYSTEM);
+ FILE_DEVICE_CD_ROM_FILE_SYSTEM,
+ 0);
if (NT_SUCCESS(Status)) DeviceCount++;
/* Register UDFS for HDDs */
L"\\UdfsDisk",
L"\\FileSystem\\UdfsDiskRecognizer",
FS_TYPE_UDFS,
- FILE_DEVICE_DISK_FILE_SYSTEM);
+ FILE_DEVICE_DISK_FILE_SYSTEM,
+ 0);
if (NT_SUCCESS(Status)) DeviceCount++;
/* Register FAT */
L"\\Fat",
L"\\FileSystem\\FatRecognizer",
FS_TYPE_VFAT,
- FILE_DEVICE_DISK_FILE_SYSTEM);
+ FILE_DEVICE_DISK_FILE_SYSTEM,
+ 0);
if (NT_SUCCESS(Status)) DeviceCount++;
/* Register NTFS */
L"\\Ntfs",
L"\\FileSystem\\NtfsRecognizer",
FS_TYPE_NTFS,
- FILE_DEVICE_DISK_FILE_SYSTEM);
+ FILE_DEVICE_DISK_FILE_SYSTEM,
+ 0);
if (NT_SUCCESS(Status)) DeviceCount++;
/* Register EXT2 */
L"\\Ext2fs",
L"\\FileSystem\\Ext2Recognizer",
FS_TYPE_EXT2,
- FILE_DEVICE_DISK_FILE_SYSTEM);
+ FILE_DEVICE_DISK_FILE_SYSTEM,
+ 0);
if (NT_SUCCESS(Status)) DeviceCount++;
/* Register BTRFS */
L"\\Btrfs",
L"\\FileSystem\\BtrfsRecognizer",
FS_TYPE_BTRFS,
- FILE_DEVICE_DISK_FILE_SYSTEM);
+ FILE_DEVICE_DISK_FILE_SYSTEM,
+ 0);
if (NT_SUCCESS(Status)) DeviceCount++;
/* Register REISERFS */
L"\\Reiserfs",
L"\\FileSystem\\ReiserfsRecognizer",
FS_TYPE_REISERFS,
- FILE_DEVICE_DISK_FILE_SYSTEM);
+ FILE_DEVICE_DISK_FILE_SYSTEM,
+ 0);
if (NT_SUCCESS(Status)) DeviceCount++;
/* Register FFS */
L"\\ffs",
L"\\FileSystem\\FfsRecognizer",
FS_TYPE_FFS,
- FILE_DEVICE_DISK_FILE_SYSTEM);
+ FILE_DEVICE_DISK_FILE_SYSTEM,
+ 0);
if (NT_SUCCESS(Status)) DeviceCount++;
/* Return appropriate Status */