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