Charles Davis cdavis@mymail.mines.edu writes:
Now I just need to figure out how to do that. I read the headers and source, and figured out a QUERY_UNIX_DRIVE won't work because it needs a drive letter, and NTDLL isn't supposed to know about drive letters. Maybe we can use the device name by doing something similar to get_parent_device(). But that only works on Mac OS. If we do this for Linux, too, we'll have to figure something else out. Maybe if we fstat() the FD and get its device number, we can use it to find the file system corresponding to it. Something like that could work on Mac OS, too, and there's similar code elsewhere in Wine (in ntdll itself, if I'm not mistaken). Maybe I could even hijack that code for this purpose instead of reinventing the wheel.
The way it needs to work is basically that opening the device would open an NT-style device instead of directly the Unix device. Then you have a handle that you can use with mountmgr, and mountmgr can give you an appropriate unix fd for calls that are performed on the client side.