Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
2.5 KiB

  1. /*++
  2. Copyright (c) Microsoft Corporation. All rights reserved.
  3. Module Name:
  4. partmgrp.h
  5. Abstract:
  6. This file defines the public interfaces for the PARTMGR driver.
  7. Author:
  8. norbertk
  9. Revision History:
  10. --*/
  11. //
  12. // Define IOCTL so that volume managers can get another crack at
  13. // partitions that are unclaimed.
  14. //
  15. #define IOCTL_PARTMGR_CHECK_UNCLAIMED_PARTITIONS CTL_CODE('p', 0, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
  16. //
  17. // This IOCTL is for clusters to tell the volume managers for the
  18. // given disk to stop using it. You can undo this operation with
  19. // IOCTL_PARTMGR_CHECK_UNCLAIMED_PARTITIONS.
  20. //
  21. #define IOCTL_PARTMGR_EJECT_VOLUME_MANAGERS CTL_CODE('p', 1, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
  22. //
  23. // This IOCTL usually just returns the MBR disk signature that is contained
  24. // on the disk but may return a 'future' version of the disk signature during
  25. // boot. This separate call is needed so that if the signature on the boot
  26. // disk is not unique or 0, that it still stays as the old value long enough
  27. // for the system to find it from the loader block.
  28. //
  29. #define IOCTL_PARTMGR_QUERY_DISK_SIGNATURE CTL_CODE('p', 2, METHOD_BUFFERED, FILE_READ_ACCESS)
  30. //
  31. // This IOCTL is to allow notification requests to be queued against PartMgr
  32. // which will be completed later when PartMgr spots an 'interesting' change
  33. // to a disk.
  34. //
  35. #define IOCTL_PARTMGR_NOTIFY_SIGNATURE_CHECK CTL_CODE('p', 3, METHOD_BUFFERED, FILE_READ_ACCESS)
  36. //
  37. // This structure is the return value for IOCTL_PARTMGR_QUERY_DISK_SIGNATURE.
  38. //
  39. typedef struct _PARTMGR_DISK_SIGNATURE {
  40. ULONG Signature;
  41. } PARTMGR_DISK_SIGNATURE, *PPARTMGR_DISK_SIGNATURE;
  42. //
  43. // This structure is used to request the list of disk numbers that have
  44. // become active since the specificed epoch and is the input paramter for
  45. // IOCTL_PARTMGR_NOTIFY_SIGNATURE_CHECK
  46. //
  47. typedef struct _PARTMGR_SIGNATURE_CHECK_EPOCH {
  48. ULONG RequestEpoch;
  49. } PARTMGR_SIGNATURE_CHECK_EPOCH, *PPARTMGR_SIGNATURE_CHECK_EPOCH;
  50. #define PARTMGR_REQUEST_CURRENT_DISK_EPOCH (0xFFFFFFFF)
  51. //
  52. // This structure describes the output for IOCTL_PARTMGR_NOTIFY_SIGNATURE_CHECK
  53. //
  54. typedef struct _PARTMGR_SIGNATURE_CHECK_DISKS {
  55. ULONG CurrentEpoch;
  56. ULONG HighestDiskEpochReturned;
  57. ULONG DiskNumbersReturned;
  58. ULONG DiskNumber [1];
  59. } PARTMGR_SIGNATURE_CHECK_DISKS, *PPARTMGR_SIGNATURE_CHECK_DISKS;