#ifndef _NTIOAPI_H
// Input structure for IOCTL_MOUNTMGR_DELETE_POINTS, IOCTL_MOUNTMGR_QUERY_POINTS, and IOCTL_MOUNTMGR_DELETE_POINTS_DBONLY.
typedef struct _MOUNTMGR_MOUNT_POINT
{
ULONG SymbolicLinkNameOffset;
USHORT SymbolicLinkNameLength;
USHORT Reserved1;
ULONG UniqueIdOffset;
USHORT UniqueIdLength;
USHORT Reserved2;
ULONG DeviceNameOffset;
USHORT DeviceNameLength;
USHORT Reserved3;
} MOUNTMGR_MOUNT_POINT, *PMOUNTMGR_MOUNT_POINT;
View code on GitHub// mountmgr.h
typedef struct _MOUNTMGR_MOUNT_POINT {
ULONG SymbolicLinkNameOffset;
USHORT SymbolicLinkNameLength;
USHORT Reserved1;
ULONG UniqueIdOffset;
USHORT UniqueIdLength;
USHORT Reserved2;
ULONG DeviceNameOffset;
USHORT DeviceNameLength;
USHORT Reserved3;
} MOUNTMGR_MOUNT_POINT, *PMOUNTMGR_MOUNT_POINT;
View the official Windows Driver Kit DDI referenceThis structure is documented in Windows Driver Kit.
The MOUNTMGR_MOUNT_POINT structure is used by mount manager clients in conjunction with an IOCTL_MOUNTMGR_QUERY_POINTS request to query the mount manager for all of the mount points (symbolic links) associated with a device. The mount manager responds by sending an array of MOUNTMGR_MOUNT_POINT structures containing the mount points.
SymbolicLinkNameOffsetContains an offset, in bytes, into the output buffer where the symbolic link is located.
SymbolicLinkNameLengthContains the length, in bytes, of the symbolic link.
Reserved1UniqueIdOffsetContains an offset, in bytes, into the output buffer where the unique ID is located.
UniqueIdLengthContains the length, in bytes, of the unique ID.
Reserved2DeviceNameOffsetContains an offset, in bytes, into the output buffer where the nonpersistent device name is located.
DeviceNameLengthContains the length, in bytes, of the nonpersistent device name.
Reserved3None of the names returned are NULL terminated, nor do the buffers require terminating NULL characters. The caller of IOCTL_MOUNTMGR_QUERY_POINTS is not required to provide data in all of the members of the MOUNTMGR_MOUNT_POINT structure, but empty members must have an offset of zero.
On input, offsets are from the beginning of the MOUNTMGR_MOUNT_POINT structure. On output offsets are from the beginning of the buffer. This is usually the same as the beginning of the MOUNTMGR_MOUNT_POINTS container structure (as opposed to the embedded MOUNTMGR_MOUNT_POINT array instance).
The IOCTL_MOUNTMGR_QUERY_POINTS request is available in Windows 2000 and later operating systems.
For more information, see Supporting Mount Manager Requests in a Storage Class Driver.