| #ifndef _MOUNTDEV_ |
| #define _MOUNTDEV_ |
| |
| #include <mountmgr.h> |
| |
| #if (NTDDI_VERSION >= NTDDI_WIN2K) |
| |
| #define IOCTL_MOUNTDEV_QUERY_UNIQUE_ID CTL_CODE(MOUNTDEVCONTROLTYPE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| #define IOCTL_MOUNTDEV_QUERY_SUGGESTED_LINK_NAME CTL_CODE(MOUNTDEVCONTROLTYPE, 3, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| #define IOCTL_MOUNTDEV_LINK_CREATED CTL_CODE(MOUNTDEVCONTROLTYPE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| #define IOCTL_MOUNTDEV_LINK_DELETED CTL_CODE(MOUNTDEVCONTROLTYPE, 5, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| |
| typedef struct _MOUNTDEV_UNIQUE_ID { |
| USHORT UniqueIdLength; |
| UCHAR UniqueId[1]; |
| } MOUNTDEV_UNIQUE_ID, *PMOUNTDEV_UNIQUE_ID; |
| |
| typedef struct _MOUNTDEV_SUGGESTED_LINK_NAME { |
| BOOLEAN UseOnlyIfThereAreNoOtherLinks; |
| USHORT NameLength; |
| WCHAR Name[1]; |
| } MOUNTDEV_SUGGESTED_LINK_NAME, *PMOUNTDEV_SUGGESTED_LINK_NAME; |
| |
| #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */ |
| |
| #if (NTDDI_VERSION >= NTDDI_WINXP) |
| |
| #define IOCTL_MOUNTDEV_QUERY_STABLE_GUID CTL_CODE(MOUNTDEVCONTROLTYPE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| |
| typedef struct _MOUNTDEV_STABLE_GUID { |
| GUID StableGuid; |
| } MOUNTDEV_STABLE_GUID, *PMOUNTDEV_STABLE_GUID; |
| |
| #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */ |
| |
| /* FIXME : These definitions don't exist in the official header : */ |
| #define IOCTL_MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY CTL_CODE(MOUNTDEVCONTROLTYPE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS) |
| typedef struct _MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY_OUTPUT { |
| ULONG Size; |
| USHORT OldUniqueIdOffset; |
| USHORT OldUniqueIdLength; |
| USHORT NewUniqueIdOffset; |
| USHORT NewUniqueIdLength; |
| } MOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY_OUTPUT, *PMOUNTDEV_UNIQUE_ID_CHANGE_NOTIFY_OUTPUT; |
| |
| |
| #endif /* _MOUNTDEV_ */ |