| 1 | #ifndef _MOUNTDEV_ |
| 2 | #define _MOUNTDEV_ |
| 3 | |
| 4 | #include <mountmgr.h> |
| 5 | |
| 6 | #if (NTDDI_VERSION >= NTDDI_WIN2K) |
| 7 | |
| 8 | #define IOCTL_MOUNTDEV_QUERY_UNIQUE_ID CTL_CODE(MOUNTDEVCONTROLTYPE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 9 | #define IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME CTL_CODE(MOUNTDEVCONTROLTYPE, 3, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 10 | #define IOCTL_MOUNTDEV_LINK_CREATED CTL_CODE(MOUNTDEVCONTROLTYPE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 11 | #define IOCTL_MOUNTDEV_LINK_DELETED CTL_CODE(MOUNTDEVCONTROLTYPE, 5, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 12 | |
| 13 | typedef struct _MOUNTDEV_UNIQUE_ID { |
| 14 | USHORT UniqueIdLength; |
| 15 | UCHAR UniqueId[1]; |
| 16 | } MOUNTDEV_UNIQUE_ID, *PMOUNTDEV_UNIQUE_ID; |
| 17 | |
| 18 | typedef struct _MOUNTDEV_SUGGESTED_LINK_NAME { |
| 19 | BOOLEAN UseOnlyIfThereAreNoOtherLinks; |
| 20 | USHORT NameLength; |
| 21 | WCHAR Name[1]; |
| 22 | } MOUNTDEV_SUGGESTED_LINK_NAME, *PMOUNTDEV_SUGGESTED_LINK_NAME; |
| 23 | |
| 24 | #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */ |
| 25 | |
| 26 | #if (NTDDI_VERSION >= NTDDI_WINXP) |
| 27 | |
| 28 | #define IOCTL_MOUNTDEV_QUERY_STABLE_GUID CTL_CODE(MOUNTDEVCONTROLTYPE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 29 | |
| 30 | typedef struct _MOUNTDEV_STABLE_GUID { |
| 31 | GUID StableGuid; |
| 32 | } MOUNTDEV_STABLE_GUID, *PMOUNTDEV_STABLE_GUID; |
| 33 | |
| 34 | #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */ |
| 35 | |
| 36 | /* FIXME : These definitions don't exist in the official header : */ |
| 37 | #define IOCTL_MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY CTL_CODE(MOUNTDEVCONTROLTYPE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| 38 | typedef struct _MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY_OUTPUT { |
| 39 | ULONG Size; |
| 40 | USHORT OldUniqueIdOffset; |
| 41 | USHORT OldUniqueIdLength; |
| 42 | USHORT NewUniqueIdOffset; |
| 43 | USHORT NewUniqueIdLength; |
| 44 | } MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY_OUTPUT, *PMOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY_OUTPUT; |
| 45 | |
| 46 | |
| 47 | #endif /* _MOUNTDEV_ */ |