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.

189 lines
6.5 KiB

  1. /*++ BUILD Version: 0001 // Increment this if a change has global effects
  2. Copyright (c) Microsoft Corporation. All rights reserved.
  3. Module Name:
  4. ioevent.h
  5. Abstract:
  6. This module contains the GUIDS and event structures for io system
  7. initiated events. These events are reported in kernel mode and are
  8. available to both user mode and kernel mode clients.
  9. Author:
  10. Mark Zbikowski (markz) 3/18/98
  11. Revision History:
  12. --*/
  13. //
  14. // Label change event. This event is signalled upon successful completion
  15. // of a label change. There is no additional data.
  16. //
  17. DEFINE_GUID( GUID_IO_VOLUME_CHANGE, 0x7373654aL, 0x812a, 0x11d0, 0xbe, 0xc7, 0x08, 0x00, 0x2b, 0xe2, 0x09, 0x2f );
  18. //
  19. // Volume dismount event. This event is signalled when an attempt is made to
  20. // dismount a volume. There is no additional data. Note that this will not
  21. // necessarily be preceded by a GUID_IO_VOLUME_LOCK notification.
  22. //
  23. DEFINE_GUID( GUID_IO_VOLUME_DISMOUNT, 0xd16a55e8L, 0x1059, 0x11d2, 0x8f, 0xfd, 0x00, 0xa0, 0xc9, 0xa0, 0x6d, 0x32 );
  24. //
  25. // Volume dismount failed event. This event is signalled when a volume dismount fails.
  26. // There is no additional data.
  27. //
  28. DEFINE_GUID( GUID_IO_VOLUME_DISMOUNT_FAILED, 0xe3c5b178L, 0x105d, 0x11d2, 0x8f, 0xfd, 0x00, 0xa0, 0xc9, 0xa0, 0x6d, 0x32 );
  29. //
  30. // Volume mount event. This event is signalled when a volume mount occurs.
  31. // There is no additional data.
  32. //
  33. DEFINE_GUID( GUID_IO_VOLUME_MOUNT, 0xb5804878L, 0x1a96, 0x11d2, 0x8f, 0xfd, 0x00, 0xa0, 0xc9, 0xa0, 0x6d, 0x32 );
  34. //
  35. // Volume lock event. This event is signalled when an attempt is made to
  36. // lock a volume. There is no additional data.
  37. //
  38. DEFINE_GUID( GUID_IO_VOLUME_LOCK, 0x50708874L, 0xc9af, 0x11d1, 0x8f, 0xef, 0x00, 0xa0, 0xc9, 0xa0, 0x6d, 0x32 );
  39. //
  40. // Volume lock failed event. This event is signalled when an attempt is made to
  41. // lock a volume, but it fails. There is no additional data.
  42. //
  43. DEFINE_GUID( GUID_IO_VOLUME_LOCK_FAILED, 0xae2eed10L, 0x0ba8, 0x11d2, 0x8f, 0xfb, 0x00, 0xa0, 0xc9, 0xa0, 0x6d, 0x32 );
  44. //
  45. // Volume unlock event. This event is signalled when an attempt is made to
  46. // unlock a volume. There is no additional data.
  47. //
  48. DEFINE_GUID( GUID_IO_VOLUME_UNLOCK, 0x9a8c3d68L, 0xd0cb, 0x11d1, 0x8f, 0xef, 0x00, 0xa0, 0xc9, 0xa0, 0x6d, 0x32 );
  49. //
  50. // Volume name change. This event is signalled when the list of persistent
  51. // names (like drive letters) for a volume changes. There is no additional
  52. // data.
  53. //
  54. DEFINE_GUID( GUID_IO_VOLUME_NAME_CHANGE, 0x2de97f83, 0x4c06, 0x11d2, 0xa5, 0x32, 0x0, 0x60, 0x97, 0x13, 0x5, 0x5a);
  55. //
  56. // Volume physical configuration change. This event is signalled when the
  57. // physical makeup or current physical state of the volume changes.
  58. //
  59. DEFINE_GUID( GUID_IO_VOLUME_PHYSICAL_CONFIGURATION_CHANGE, 0x2de97f84, 0x4c06, 0x11d2, 0xa5, 0x32, 0x0, 0x60, 0x97, 0x13, 0x5, 0x5a);
  60. //
  61. // Volume device interface. This is a device interface GUID that appears
  62. // when the device object associated with a volume is created and disappears
  63. // when the device object associated with the volume is destroyed.
  64. //
  65. DEFINE_GUID( GUID_IO_VOLUME_DEVICE_INTERFACE, 0x53f5630d, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
  66. //
  67. // Sent when the removable media is changed (added, removed) from a device
  68. // (such as a CDROM, tape, changer, etc).
  69. //
  70. // The additional data is a DWORD representing the data event.
  71. //
  72. DEFINE_GUID( GUID_IO_MEDIA_ARRIVAL, 0xd07433c0, 0xa98e, 0x11d2, 0x91, 0x7a, 0x00, 0xa0, 0xc9, 0x06, 0x8f, 0xf3);
  73. DEFINE_GUID( GUID_IO_MEDIA_REMOVAL, 0xd07433c1, 0xa98e, 0x11d2, 0x91, 0x7a, 0x00, 0xa0, 0xc9, 0x06, 0x8f, 0xf3);
  74. //
  75. // Sent when the media is returning that it is not ready right now, but will
  76. // be ready soon. This can be because the drive has spun down to save power
  77. // or because new media has been inserted but is not ready for access yet.
  78. //
  79. DEFINE_GUID( GUID_IO_DEVICE_BECOMING_READY, 0xd07433f0, 0xa98e, 0x11d2, 0x91, 0x7a, 0x00, 0xa0, 0xc9, 0x06, 0x8f, 0xf3);
  80. typedef struct _DEVICE_EVENT_BECOMING_READY {
  81. ULONG Version;
  82. ULONG Reason;
  83. ULONG Estimated100msToReady;
  84. } DEVICE_EVENT_BECOMING_READY, *PDEVICE_EVENT_BECOMING_READY;
  85. //
  86. // Sent when the user presses the eject button on the front of the drive,
  87. // or when other buttons on the front are pressed via GESN command polling
  88. // (GESN support to be added)
  89. //
  90. DEFINE_GUID( GUID_IO_DEVICE_EXTERNAL_REQUEST, 0xd07433d0, 0xa98e, 0x11d2, 0x91, 0x7a, 0x00, 0xa0, 0xc9, 0x06, 0x8f, 0xf3);
  91. DEFINE_GUID( GUID_IO_MEDIA_EJECT_REQUEST, 0xd07433d1, 0xa98e, 0x11d2, 0x91, 0x7a, 0x00, 0xa0, 0xc9, 0x06, 0x8f, 0xf3);
  92. typedef struct _DEVICE_EVENT_EXTERNAL_REQUEST {
  93. ULONG Version;
  94. ULONG DeviceClass; // 0 == MMC Storage Devices
  95. USHORT ButtonStatus; // 1 == down, 2 == up
  96. USHORT Request;
  97. LARGE_INTEGER SystemTime; // for time-related info
  98. } DEVICE_EVENT_EXTERNAL_REQUEST, *PDEVICE_EVENT_EXTERNAL_REQUEST;
  99. //
  100. // Sent when a tape drive requires cleaning
  101. //
  102. DEFINE_GUID(GUID_IO_DRIVE_REQUIRES_CLEANING, 0x7207877c, 0x90ed, 0x44e5, 0xa0, 0x0, 0x81, 0x42, 0x8d, 0x4c, 0x79, 0xbb);
  103. //
  104. // Sent when a tape is erased
  105. //
  106. DEFINE_GUID(GUID_IO_TAPE_ERASE, 0x852d11eb, 0x4bb8, 0x4507, 0x9d, 0x9b, 0x41, 0x7c, 0xc2, 0xb1, 0xb4, 0x38);
  107. typedef struct _DEVICE_EVENT_GENERIC_DATA {
  108. ULONG EventNumber;
  109. } DEVICE_EVENT_GENERIC_DATA, *PDEVICE_EVENT_GENERIC_DATA;
  110. //
  111. // Represents any asynchronous notification coming from a device driver whose
  112. // notification protocol is RBC
  113. // Additional data is provided
  114. DEFINE_GUID( GUID_DEVICE_EVENT_RBC, 0xd0744792, 0xa98e, 0x11d2, 0x91, 0x7a, 0x00, 0xa0, 0xc9, 0x06, 0x8f, 0xf3);
  115. typedef struct _DEVICE_EVENT_RBC_DATA {
  116. ULONG EventNumber;
  117. UCHAR SenseQualifier;
  118. UCHAR SenseCode;
  119. UCHAR SenseKey;
  120. UCHAR Reserved;
  121. ULONG Information;
  122. } DEVICE_EVENT_RBC_DATA, *PDEVICE_EVENT_RBC_DATA;
  123. //
  124. // A clone of this disk has just arrived in the system.
  125. //
  126. DEFINE_GUID( GUID_IO_DISK_CLONE_ARRIVAL, 0x6a61885b, 0x7c39, 0x43dd, 0x9b, 0x56, 0xb8, 0xac, 0x22, 0xa5, 0x49, 0xaa);
  127. typedef struct _GUID_IO_DISK_CLONE_ARRIVAL_INFORMATION {
  128. ULONG DiskNumber; // The disk number of the new disk arriving in the system.
  129. } GUID_IO_DISK_CLONE_ARRIVAL_INFORMATION, *PGUID_IO_DISK_CLONE_ARRIVAL_INFORMATION;
  130. //
  131. // The disk layout has changed
  132. //
  133. DEFINE_GUID( GUID_IO_DISK_LAYOUT_CHANGE, 0x11dff54c, 0x8469, 0x41f9, 0xb3, 0xde, 0xef, 0x83, 0x64, 0x87, 0xc5, 0x4a);