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_ */ 48