mirror of
https://github.com/reactos/reactos.git
synced 2024-09-30 22:47:28 +00:00
[FS_REC]
Always register CDFS as a low-priority filesystem. This inserts it at the tail of the filesystem queue instead of the head, meaning UDF always takes precedence and UDF/CDFS hybrid media is properly detected as UDF. Thanks to Pierre for the hint! Should fix what's reported in https://jira.reactos.org/browse/CORE-9816?focusedCommentId=78820&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-78820 svn path=/trunk/; revision=75638
This commit is contained in:
parent
8da0a3a46d
commit
78c1aeecb9
|
@ -220,7 +220,8 @@ FsRecRegisterFs(IN PDRIVER_OBJECT DriverObject,
|
|||
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;
|
||||
|
@ -278,6 +279,9 @@ FsRecRegisterFs(IN PDRIVER_OBJECT DriverObject,
|
|||
&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;
|
||||
|
@ -348,7 +352,8 @@ DriverEntry(IN PDRIVER_OBJECT DriverObject,
|
|||
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 */
|
||||
|
@ -358,7 +363,8 @@ DriverEntry(IN PDRIVER_OBJECT DriverObject,
|
|||
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 */
|
||||
|
@ -368,7 +374,8 @@ DriverEntry(IN PDRIVER_OBJECT DriverObject,
|
|||
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 */
|
||||
|
@ -378,7 +385,8 @@ DriverEntry(IN PDRIVER_OBJECT DriverObject,
|
|||
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 */
|
||||
|
@ -388,7 +396,8 @@ DriverEntry(IN PDRIVER_OBJECT DriverObject,
|
|||
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 */
|
||||
|
@ -398,7 +407,8 @@ DriverEntry(IN PDRIVER_OBJECT DriverObject,
|
|||
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 */
|
||||
|
@ -408,7 +418,8 @@ DriverEntry(IN PDRIVER_OBJECT DriverObject,
|
|||
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 */
|
||||
|
@ -418,7 +429,8 @@ DriverEntry(IN PDRIVER_OBJECT DriverObject,
|
|||
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 */
|
||||
|
@ -428,7 +440,8 @@ DriverEntry(IN PDRIVER_OBJECT DriverObject,
|
|||
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 */
|
||||
|
@ -438,7 +451,8 @@ DriverEntry(IN PDRIVER_OBJECT DriverObject,
|
|||
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 */
|
||||
|
|
Loading…
Reference in a new issue