Problems using IOCTL_MOUNTMGR_CREATE_POINT

I want to be able to mount a volume from my own filesystem at an NTFS mount point. I’ve created a symbolic link for the volume in the GLOBAL?? namespace. When I try to use SetVolumeMountPoint() (or the mountvol utility), I keep getting “the parameter is incorrect”.

mountvol c:\mnt \?\Volume{74025610-31f3-48e3-9ba9-202b6023ee15}\

It seems that creating a volume GUID symbolic link to my \Device\Devname is not enough. I seem to have to involve the mount manager. So instead of directly creating the symbolic link, I tried using IOCTL_MOUNTMGR_CREATE_POINT from a user mode program. I always get back an “access denied” error from that, even when running as LocalSystem. Any idea what I could be doing wrong?

Note, my driver does not handle any incoming mount manager IOCTLs, but I don’t receive any of them anyway.

THanks,
Carl

> Note, my driver does not handle any incoming mount manager IOCTLs,

You must.

but I don’t receive any of them anyway.

Register the MOUNTDEV_MOUNTED_DEVICE_GUID PnP interface.


Maxim S. Shatskih
Windows DDK MVP
xxxxx@storagecraft.com
http://www.storagecraft.com

Carl,

Unless you are surfacing your own volume device that doesn’t export the MOUNTDEV_MOUNTED_DEVICE_GUID interface, mountmgr should have already created the volume GUID symbolic link. You should be able to create a mount point by just calling SetVolumeMountPoint.

Thanks,
Scott

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@symantec.com
Sent: Friday, October 09, 2009 1:54 PM
To: Windows File Systems Devs Interest List
Subject: [ntfsd] Problems using IOCTL_MOUNTMGR_CREATE_POINT

I want to be able to mount a volume from my own filesystem at an NTFS mount point. I’ve created a symbolic link for the volume in the GLOBAL?? namespace. When I try to use SetVolumeMountPoint() (or the mountvol utility), I keep getting “the parameter is incorrect”.

mountvol c:\mnt \?\Volume{74025610-31f3-48e3-9ba9-202b6023ee15}\

It seems that creating a volume GUID symbolic link to my \Device\Devname is not enough. I seem to have to involve the mount manager. So instead of directly creating the symbolic link, I tried using IOCTL_MOUNTMGR_CREATE_POINT from a user mode program. I always get back an “access denied” error from that, even when running as LocalSystem. Any idea what I could be doing wrong?

Note, my driver does not handle any incoming mount manager IOCTLs, but I don’t receive any of them anyway.

THanks,
Carl


NTFSD is sponsored by OSR

For our schedule of debugging and file system seminars
(including our new fs mini-filter seminar) visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer