Author: fireball Date: Mon Oct 1 22:04:42 2007 New Revision: 29334
URL: http://svn.reactos.org/svn/reactos?rev=29334&view=rev Log: - Almost completely fix the hack in IopParseDevice which was resulting in "FIXME: Broken Parse due to invalid DesiredAccess" messages, by changing some calls to IoGetDeviceObjectPointer to use FILE_READ_ATTRIBUTES instead of FILE_READ_DATA (so that the volume doesn't get mounted).
Modified: trunk/reactos/ntoskrnl/fstub/disksup.c trunk/reactos/ntoskrnl/io/iomgr/arcname.c (contents, props changed) trunk/reactos/ntoskrnl/io/iomgr/file.c (contents, props changed)
Modified: trunk/reactos/ntoskrnl/fstub/disksup.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/fstub/disksup.c?re... ============================================================================== --- trunk/reactos/ntoskrnl/fstub/disksup.c (original) +++ trunk/reactos/ntoskrnl/fstub/disksup.c Mon Oct 1 22:04:42 2007 @@ -305,7 +305,7 @@
/* Get the drives sector size */ Status = IoGetDeviceObjectPointer(DeviceName, - FILE_READ_DATA, + FILE_READ_ATTRIBUTES, &FileObject, &DeviceObject); if (!NT_SUCCESS(Status)) @@ -481,10 +481,10 @@ NULL);
Status = ZwOpenFile(&FileHandle, - 0x10001, + FILE_READ_DATA | SYNCHRONIZE, &ObjectAttributes, &StatusBlock, - 1, + FILE_SHARE_READ, FILE_SYNCHRONOUS_IO_NONALERT); if (NT_SUCCESS(Status)) {
Modified: trunk/reactos/ntoskrnl/io/iomgr/arcname.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/arcname.c... ============================================================================== --- trunk/reactos/ntoskrnl/io/iomgr/arcname.c (original) +++ trunk/reactos/ntoskrnl/io/iomgr/arcname.c Mon Oct 1 22:04:42 2007 @@ -154,7 +154,7 @@
/* Get the device pointer */ Status = IoGetDeviceObjectPointer(&DeviceName, - FILE_READ_DATA, + FILE_READ_ATTRIBUTES, &FileObject, &DeviceObject); *DiskDeviceObject = DeviceObject;
Propchange: trunk/reactos/ntoskrnl/io/iomgr/arcname.c ------------------------------------------------------------------------------ --- svn:needs-lock (original) +++ svn:needs-lock (removed) @@ -1,1 +1,0 @@ -*
Modified: trunk/reactos/ntoskrnl/io/iomgr/file.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/file.c?re... ============================================================================== --- trunk/reactos/ntoskrnl/io/iomgr/file.c (original) +++ trunk/reactos/ntoskrnl/io/iomgr/file.c Mon Oct 1 22:04:42 2007 @@ -390,27 +390,15 @@ /* Check if this is a direct open */ if (!(RemainingName->Length) && !(OpenPacket->RelatedFileObject) && -#if 0 // USETUP IS BROKEN! - ((DesiredAccess & ~(SYNCHRONIZE | - FILE_READ_ATTRIBUTES | - READ_CONTROL | - ACCESS_SYSTEM_SECURITY | - WRITE_OWNER | - WRITE_DAC)) && -#endif + (((DesiredAccess & ~(SYNCHRONIZE | + FILE_READ_ATTRIBUTES | + READ_CONTROL | + ACCESS_SYSTEM_SECURITY | + WRITE_OWNER | + WRITE_DAC)) == 0) || + (wcsstr(CompleteName->Buffer, L"Harddisk"))) && !(UseDummyFile)) { - if (DesiredAccess & ~(SYNCHRONIZE | - FILE_READ_ATTRIBUTES | - READ_CONTROL | - ACCESS_SYSTEM_SECURITY | - WRITE_OWNER | - WRITE_DAC)) - { - DPRINT1("FIXME: Broken Parse due to invalid DesiredAccess: %lx\n", - DesiredAccess); - } - /* Remember this for later */ DirectOpen = TRUE; }
Propchange: trunk/reactos/ntoskrnl/io/iomgr/file.c ------------------------------------------------------------------------------ --- svn:needs-lock (original) +++ svn:needs-lock (removed) @@ -1,1 +1,0 @@ -*