mirror of
https://github.com/reactos/reactos.git
synced 2024-10-02 07:26:47 +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 FsName,
|
||||||
IN PCWSTR RecognizerName,
|
IN PCWSTR RecognizerName,
|
||||||
IN ULONG FsType,
|
IN ULONG FsType,
|
||||||
IN DEVICE_TYPE DeviceType)
|
IN DEVICE_TYPE DeviceType,
|
||||||
|
IN ULONG AdditionalFlags)
|
||||||
{
|
{
|
||||||
OBJECT_ATTRIBUTES ObjectAttributes;
|
OBJECT_ATTRIBUTES ObjectAttributes;
|
||||||
IO_STATUS_BLOCK IoStatus;
|
IO_STATUS_BLOCK IoStatus;
|
||||||
|
@ -278,6 +279,9 @@ FsRecRegisterFs(IN PDRIVER_OBJECT DriverObject,
|
||||||
&DeviceObject);
|
&DeviceObject);
|
||||||
if (NT_SUCCESS(Status))
|
if (NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
|
/* Set additional flags in the device object */
|
||||||
|
DeviceObject->Flags |= AdditionalFlags;
|
||||||
|
|
||||||
/* Get the device extension and set it up */
|
/* Get the device extension and set it up */
|
||||||
DeviceExtension = DeviceObject->DeviceExtension;
|
DeviceExtension = DeviceObject->DeviceExtension;
|
||||||
DeviceExtension->FsType = FsType;
|
DeviceExtension->FsType = FsType;
|
||||||
|
@ -348,7 +352,8 @@ DriverEntry(IN PDRIVER_OBJECT DriverObject,
|
||||||
L"\\Cdfs",
|
L"\\Cdfs",
|
||||||
L"\\FileSystem\\CdfsRecognizer",
|
L"\\FileSystem\\CdfsRecognizer",
|
||||||
FS_TYPE_CDFS,
|
FS_TYPE_CDFS,
|
||||||
FILE_DEVICE_CD_ROM_FILE_SYSTEM);
|
FILE_DEVICE_CD_ROM_FILE_SYSTEM,
|
||||||
|
DO_LOW_PRIORITY_FILESYSTEM);
|
||||||
if (NT_SUCCESS(Status)) DeviceCount++;
|
if (NT_SUCCESS(Status)) DeviceCount++;
|
||||||
|
|
||||||
/* Register CDFS for HDDs */
|
/* Register CDFS for HDDs */
|
||||||
|
@ -358,7 +363,8 @@ DriverEntry(IN PDRIVER_OBJECT DriverObject,
|
||||||
L"\\CdfsHdd",
|
L"\\CdfsHdd",
|
||||||
L"\\FileSystem\\CdfsHddRecognizer",
|
L"\\FileSystem\\CdfsHddRecognizer",
|
||||||
FS_TYPE_CDFS,
|
FS_TYPE_CDFS,
|
||||||
FILE_DEVICE_DISK_FILE_SYSTEM);
|
FILE_DEVICE_DISK_FILE_SYSTEM,
|
||||||
|
DO_LOW_PRIORITY_FILESYSTEM);
|
||||||
if (NT_SUCCESS(Status)) DeviceCount++;
|
if (NT_SUCCESS(Status)) DeviceCount++;
|
||||||
|
|
||||||
/* Register UDFS for CDs */
|
/* Register UDFS for CDs */
|
||||||
|
@ -368,7 +374,8 @@ DriverEntry(IN PDRIVER_OBJECT DriverObject,
|
||||||
L"\\UdfsCdRom",
|
L"\\UdfsCdRom",
|
||||||
L"\\FileSystem\\UdfsCdRomRecognizer",
|
L"\\FileSystem\\UdfsCdRomRecognizer",
|
||||||
FS_TYPE_UDFS,
|
FS_TYPE_UDFS,
|
||||||
FILE_DEVICE_CD_ROM_FILE_SYSTEM);
|
FILE_DEVICE_CD_ROM_FILE_SYSTEM,
|
||||||
|
0);
|
||||||
if (NT_SUCCESS(Status)) DeviceCount++;
|
if (NT_SUCCESS(Status)) DeviceCount++;
|
||||||
|
|
||||||
/* Register UDFS for HDDs */
|
/* Register UDFS for HDDs */
|
||||||
|
@ -378,7 +385,8 @@ DriverEntry(IN PDRIVER_OBJECT DriverObject,
|
||||||
L"\\UdfsDisk",
|
L"\\UdfsDisk",
|
||||||
L"\\FileSystem\\UdfsDiskRecognizer",
|
L"\\FileSystem\\UdfsDiskRecognizer",
|
||||||
FS_TYPE_UDFS,
|
FS_TYPE_UDFS,
|
||||||
FILE_DEVICE_DISK_FILE_SYSTEM);
|
FILE_DEVICE_DISK_FILE_SYSTEM,
|
||||||
|
0);
|
||||||
if (NT_SUCCESS(Status)) DeviceCount++;
|
if (NT_SUCCESS(Status)) DeviceCount++;
|
||||||
|
|
||||||
/* Register FAT */
|
/* Register FAT */
|
||||||
|
@ -388,7 +396,8 @@ DriverEntry(IN PDRIVER_OBJECT DriverObject,
|
||||||
L"\\Fat",
|
L"\\Fat",
|
||||||
L"\\FileSystem\\FatRecognizer",
|
L"\\FileSystem\\FatRecognizer",
|
||||||
FS_TYPE_VFAT,
|
FS_TYPE_VFAT,
|
||||||
FILE_DEVICE_DISK_FILE_SYSTEM);
|
FILE_DEVICE_DISK_FILE_SYSTEM,
|
||||||
|
0);
|
||||||
if (NT_SUCCESS(Status)) DeviceCount++;
|
if (NT_SUCCESS(Status)) DeviceCount++;
|
||||||
|
|
||||||
/* Register NTFS */
|
/* Register NTFS */
|
||||||
|
@ -398,7 +407,8 @@ DriverEntry(IN PDRIVER_OBJECT DriverObject,
|
||||||
L"\\Ntfs",
|
L"\\Ntfs",
|
||||||
L"\\FileSystem\\NtfsRecognizer",
|
L"\\FileSystem\\NtfsRecognizer",
|
||||||
FS_TYPE_NTFS,
|
FS_TYPE_NTFS,
|
||||||
FILE_DEVICE_DISK_FILE_SYSTEM);
|
FILE_DEVICE_DISK_FILE_SYSTEM,
|
||||||
|
0);
|
||||||
if (NT_SUCCESS(Status)) DeviceCount++;
|
if (NT_SUCCESS(Status)) DeviceCount++;
|
||||||
|
|
||||||
/* Register EXT2 */
|
/* Register EXT2 */
|
||||||
|
@ -408,7 +418,8 @@ DriverEntry(IN PDRIVER_OBJECT DriverObject,
|
||||||
L"\\Ext2fs",
|
L"\\Ext2fs",
|
||||||
L"\\FileSystem\\Ext2Recognizer",
|
L"\\FileSystem\\Ext2Recognizer",
|
||||||
FS_TYPE_EXT2,
|
FS_TYPE_EXT2,
|
||||||
FILE_DEVICE_DISK_FILE_SYSTEM);
|
FILE_DEVICE_DISK_FILE_SYSTEM,
|
||||||
|
0);
|
||||||
if (NT_SUCCESS(Status)) DeviceCount++;
|
if (NT_SUCCESS(Status)) DeviceCount++;
|
||||||
|
|
||||||
/* Register BTRFS */
|
/* Register BTRFS */
|
||||||
|
@ -418,7 +429,8 @@ DriverEntry(IN PDRIVER_OBJECT DriverObject,
|
||||||
L"\\Btrfs",
|
L"\\Btrfs",
|
||||||
L"\\FileSystem\\BtrfsRecognizer",
|
L"\\FileSystem\\BtrfsRecognizer",
|
||||||
FS_TYPE_BTRFS,
|
FS_TYPE_BTRFS,
|
||||||
FILE_DEVICE_DISK_FILE_SYSTEM);
|
FILE_DEVICE_DISK_FILE_SYSTEM,
|
||||||
|
0);
|
||||||
if (NT_SUCCESS(Status)) DeviceCount++;
|
if (NT_SUCCESS(Status)) DeviceCount++;
|
||||||
|
|
||||||
/* Register REISERFS */
|
/* Register REISERFS */
|
||||||
|
@ -428,7 +440,8 @@ DriverEntry(IN PDRIVER_OBJECT DriverObject,
|
||||||
L"\\Reiserfs",
|
L"\\Reiserfs",
|
||||||
L"\\FileSystem\\ReiserfsRecognizer",
|
L"\\FileSystem\\ReiserfsRecognizer",
|
||||||
FS_TYPE_REISERFS,
|
FS_TYPE_REISERFS,
|
||||||
FILE_DEVICE_DISK_FILE_SYSTEM);
|
FILE_DEVICE_DISK_FILE_SYSTEM,
|
||||||
|
0);
|
||||||
if (NT_SUCCESS(Status)) DeviceCount++;
|
if (NT_SUCCESS(Status)) DeviceCount++;
|
||||||
|
|
||||||
/* Register FFS */
|
/* Register FFS */
|
||||||
|
@ -438,7 +451,8 @@ DriverEntry(IN PDRIVER_OBJECT DriverObject,
|
||||||
L"\\ffs",
|
L"\\ffs",
|
||||||
L"\\FileSystem\\FfsRecognizer",
|
L"\\FileSystem\\FfsRecognizer",
|
||||||
FS_TYPE_FFS,
|
FS_TYPE_FFS,
|
||||||
FILE_DEVICE_DISK_FILE_SYSTEM);
|
FILE_DEVICE_DISK_FILE_SYSTEM,
|
||||||
|
0);
|
||||||
if (NT_SUCCESS(Status)) DeviceCount++;
|
if (NT_SUCCESS(Status)) DeviceCount++;
|
||||||
|
|
||||||
/* Return appropriate Status */
|
/* Return appropriate Status */
|
||||||
|
|
Loading…
Reference in a new issue