New eject command issue
Christian Costa
titan.costa at wanadoo.fr
Wed Nov 2 17:01:26 CST 2005
Alexandre Julliard wrote:
>Christian Costa <titan.costa at wanadoo.fr> writes:
>
>
>
>>If I set H: to autodetect, GetDriveType returns DRIVE_FIXED (3).
>>
>>
>
>Then you need to figure out why FILE_GetDeviceInfo doesn't recognize
>it as a CDROM.
>
>
>
Something wrong is happening here, fstatfs return a good fs magic ID for
reiserfs and vfat partitions.
However, for the cdrom it returns 0x9fa1 which corresponds to OPENPROM
fs !?! (and this for my cdreader and my cd recorder)
I don't know why I get this but this make autodetection unusable for CDROM.
I've done some further investigations and I found some strange things
for the IOCTL involved in eject.
FSCTL_DISMOUNT_VOLUME :
in DIR_unmount_device (in ntdll/directory.c):
- unmount_device server call (in fd.c) is called but in unmount_device,
the function tries to retreive a device object given the device
return by fstat but no device object has been previously created so
get_device fails. My understanding is that this server call
should closed all fds associated with the device but files stay opened.
- system("umount ....") is called to unmount the device but umount
requires to be root and the return code of umount command is not tested
so the call fails silently and FSCTL_DISMOUNT_VOLUME returns a success
status
IOCTL_STORAGE_MEDIA_REMOVAL :
in CDROM_ControlEjection (ntdll/cdrom.c), it seems the CDROM_LOCKDOOR
ioctl is not supported on my box for both the
cdreader and the cdrecorder.
IOCTL_STORAGE_EJECT_MEDIA
in CDROM_SetTray (ntdll/cdrom.c), the CDROMEJECT works for my cdrecorder
but I think it should not because the cd is
still mounted and I can see the cached data even if I change the CD by
another one.
Well, I don't know if there is usefull information here but it's what
I've found so far...
Thx,
Christian
More information about the wine-devel
mailing list