Are you blind, my friend?
Have I once said that there is some sort of reason why
FILE_READ_ATTRIBUTES is incorrect? I have not.
What I have said is that this code SHOULD WORK with FILE_READ_DATA
(as it does on Windows). On ReactOS, it does not.
Requesting FILE_READ_DATA in such a scenario may be done by an app.
Such an app would NOT WORK in ReactOS, because vfat has a bug
handling this scenario. Therefore, what you have done is:
1) Hide a bug that we could see at every boot/install, and easily
test a fix for.
2) Delayed the appearance of this bug until an application will use
FILE_READ_DATA under the same conditions as xHalIoAssignDriveLetter.
This has NOTHING to do with wether or not FILE_READ_DATA is needed
instead of FILE_READ_ATTRIBUTES from a technical standpoint -- as far
as I can see, it isn't. It has to do with an ENGINEERING issue. Do we
want to hide this bug? No we don't.
--
Best regards,
Alex Ionescu
On 25-Oct-07, at 2:08 PM, tamlin(a)algonet.se wrote:
Alex Ionescu wrote:
Windows uses the FILE_READ_DATA flag here, not
FILE_READ_ATTRIBUTES.
Yes? And?
Let's study the code and the open modes used here.
This code tries to open Device\HarddiskN\Partition0 (N = 0 ...) for
the
sole purpose of checking for availability, and immediately close the
handle if the open succeeded.
Why would one use FILE_READ_DATA if one never intended to read
anything?
The code also uses SYNCHRONIZE. Why would one use SYNCHRONIZE if one
never
intended to wait on the handle?
As I see it, that's just requesting extra work for the purpose of
nothing.
The purpose of that open call is only to see if the disk exists, and
if
so create the symbolic link PhysicalDriveN -> HarddiskN\Partition0.
I don't buy "Windows does this" without backing it up with any
arguments whatsoever as to why Windows does this. Perhaps Windows does
more with the returned handle than immediately closing it, something
that actually requires READ_DATA?
all this is doing is hiding the bug (which is
somewhere in vfat)
I'm looking forward to the explanation of how opening
HarddiskN\Partition0 (not "Partition1", not "Partition1\", but
"Partition0" - aka the whole disk) would involve any filesystem
activity whatsoever?
Because it's now gone, it'll probably
happen in some mysterious
application 2 years from now and nobody will know why.
Hahaha, you really are a joker. An app? Calling
xHalIoAssignDriveLetters, that is called with a frickin' LoaderBlock?
That function is used exactly once, during system startup.
Health reasons suggest not holding your breath while waiting for such
an application. :-)
--
Mike
_______________________________________________
Ros-dev mailing list
Ros-dev(a)reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev