mountdev.h 1.7 KB

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