I am trying to mount a volume so it appears as a drive letter. I am
currently using IoCreateSymbolicLink to create a link to the volume
device. This works on Windows 2000 but on XP the drive can be accessed
from a command prompt but it does not appear in explorer.
I have also tried using IoRegisterDeviceInterface to register an interface
but this function requires a physical device as one of the parametes and
in my sittuation there is no physical device because the volume device
communicates with a user application via IO control messages rather than
talking to a lower level driver. Passing NULL as the parameter returns an
error.
Another approach I have tried is to send an IOCTL_MOUNTMGR_CREATE_POINT
message to the mount manager in my DriverEntry routine. However this
returns a STATUS_DEVICE_BUSY error.
Has anybody encountered this problem and know of a solution?
Graham Shaw
This is a “well known problem” with respect to Windows XP. The shape of the
name space changed and thus the context in which you create the symbolic
link makes a difference. You should read the MSDN article on
DefineDosDevice for a description of the new semantics in Windows XP. You
can use the utility WinObj to look at the name space and see how they now
create symbolic links on a per-process basis.
Regards,
Tony
Tony Mason
Consulting Partner
OSR Open Systems Resources, Inc.
http://www.osr.com
-----Original Message-----
From: xxxxx@suntail.com [mailto:xxxxx@suntail.com]
Sent: Friday, July 05, 2002 9:46 AM
To: File Systems Developers
Subject: [ntfsd] Mounting drives in Windows XP
I am trying to mount a volume so it appears as a drive letter. I am
currently using IoCreateSymbolicLink to create a link to the volume
device. This works on Windows 2000 but on XP the drive can be accessed
from a command prompt but it does not appear in explorer.
I have also tried using IoRegisterDeviceInterface to register an interface
but this function requires a physical device as one of the parametes and
in my sittuation there is no physical device because the volume device
communicates with a user application via IO control messages rather than
talking to a lower level driver. Passing NULL as the parameter returns an
error.
Another approach I have tried is to send an IOCTL_MOUNTMGR_CREATE_POINT
message to the mount manager in my DriverEntry routine. However this
returns a STATUS_DEVICE_BUSY error.
Has anybody encountered this problem and know of a solution?
Graham Shaw
You are currently subscribed to ntfsd as: xxxxx@osr.com
To unsubscribe send a blank email to %%email.unsub%%