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.

92 lines
2.4 KiB

  1. /*++
  2. Copyright (c) 2002 Microsoft Corporation
  3. Module Name:
  4. idedump.h
  5. Abstract:
  6. Dump data structures used by IDE/ATA when generating IDE-specific dump
  7. information. These data structures are shared by ATAPI and the ATAPI
  8. debugger extension used to debug dump failures.
  9. NOTE: The structure is an on-disk structure, so it must be the same
  10. for x86 and all other architectures.
  11. Author:
  12. Matthew D Hendel (math) 15-April-2002
  13. Revision History:
  14. --*/
  15. // {CA01AC1C-9D65-42c9-8DAF-CF24EF8885C8}
  16. DEFINE_GUID(ATAPI_DUMP_ID, 0xca01ac1c, 0x9d65, 0x42c9, 0x8d, 0xaf, 0xcf, 0x24, 0xef, 0x88, 0x85, 0xc8);
  17. #ifndef _IDEDUMP_H_
  18. #define _IDEDUMP_H_
  19. #include <ntdddisk.h>
  20. typedef ULONG ATAPI_DUMP_BMSTATUS;
  21. #define ATAPI_DUMP_BMSTATUS_NO_ERROR (0)
  22. #define ATAPI_DUMP_BMSTATUS_NOT_REACH_END_OF_TRANSFER (1 << 0)
  23. #define ATAPI_DUMP_BMSTATUS_ERROR_TRANSFER (1 << 1)
  24. #define ATAPI_DUMP_BMSTATUS_INTERRUPT (1 << 2)
  25. #define ATAPI_DUMP_BMSTATUS_SUCCESS(x)\
  26. ((x & ~ATAPI_DUMP_BMSTATUS_INTERRUPT) == 0)
  27. //
  28. // Dead Meat Reasons
  29. //
  30. enum {
  31. DeadMeatEnumFailed = 1,
  32. DeadMeatReportedMissing,
  33. DeadMeatTooManyTimeout,
  34. DeadMeatByKilledPdo,
  35. DeadMeatReplacedByUser
  36. };
  37. #include <pshpack8.h>
  38. typedef struct _ATAPI_DUMP_COMMAND_LOG {
  39. UCHAR Cdb[16];
  40. IDEREGS InitialTaskFile;
  41. IDEREGS FinalTaskFile;
  42. LARGE_INTEGER StartTime;
  43. LARGE_INTEGER EndTime;
  44. ATAPI_DUMP_BMSTATUS BmStatus;
  45. UCHAR SenseData[3];
  46. UCHAR SrbStatus;
  47. } ATAPI_DUMP_COMMAND_LOG, *PATAPI_DUMP_COMMAND_LOG;
  48. #include <poppack.h>
  49. #define ATAPI_DUMP_COMMAND_LOG_COUNT (40)
  50. #define ATAPI_DUMP_RECORD_VERSION (0x01)
  51. #include <pshpack1.h>
  52. typedef struct _ATAPI_DUMP_PDO_INFO {
  53. UCHAR Version : 7;
  54. UCHAR WriteCacheEnable : 1;
  55. UCHAR TargetId;
  56. UCHAR DriveRegisterStatus;
  57. UCHAR BusyStatus;
  58. UCHAR FullVendorProductId[41];
  59. UCHAR FullProductRevisionId[8 + 1];
  60. UCHAR FullSerialNumber[20 * 2 + 1];
  61. ULONG Reason;
  62. ULONG TransferModeSelected;
  63. ULONG ConsecutiveTimeoutCount;
  64. ULONG DmaTransferTimeoutCount;
  65. ULONG FlushCacheTimeoutCount;
  66. ULONG IdeCommandLogIndex;
  67. ATAPI_DUMP_COMMAND_LOG CommandLog[ATAPI_DUMP_COMMAND_LOG_COUNT];
  68. } ATAPI_DUMP_PDO_INFO, *PATAPI_DUMP_PDO_INFO;
  69. #include <poppack.h>
  70. #endif // _IDEDUMP_H_