RFC: ntdll: Implement CDROM_GetInterfaceInfo() on Mac OS (try 2)
cdavis at mymail.mines.edu
Fri Oct 23 08:19:12 CDT 2009
Alexandre Julliard wrote:
> Charles Davis <cdavis at mymail.mines.edu> writes:
>> OK, thanks. Now I've got this straight. I should do something like
>> dlls/mountmgr.sys/device.c, where I'd have an NT device like
>> \Device\CdRom0 (or some such), whose FD I'd pass to the server so that
>> when NTDLL opens the device and gets its FD, it still has the CD-ROM
>> device for client-side calls. But when I need to call mountmgr, I open
>> \Device\CdRom0 (or some such) and pass the IOCTL on to mountmgr. Is that
>> right? Or am I still missing something?
> Pretty much, except of course you don't open \Device\CdRom0 yourself,
> the app does that, and you get a handle to it.
OK. Actually, I thought of that right as I got your email. Now only one
thing bothers me. Right now, ntdll does special-casing on DOS devices.
So, if you open \DosDevices\D: with NtOpenFile() (or equivalently,
\\.\D: with kernel32.CreateFile), ntdll magically turns that into
$WINEPREFIX/dosdevices/d::. Then the server opens the file like any UNIX
file. What I'm guessing you want is for opens of \DosDevices\D: to go to
\Device\CdRom0 (because \DosDevices\D: is supposed to be an NT symbolic
link). How then am I supposed to associate a UNIX file with
\Device\CdRom0? Or, is this not what you want?
More information about the wine-devel