Source code of Windows XP (NT5)
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.

84 lines
2.1 KiB

  1. /*++
  2. Copyright (c) 1993 Microsoft Corporation
  3. Module Name:
  4. scsi.h
  5. Abstract:
  6. This is a subset of the header file for SCSI definitions that is
  7. located in the kernel tree.
  8. Authors:
  9. Mike Glass (mglass)
  10. Revision History:
  11. --*/
  12. //
  13. // Inquiry buffer structure. This is the data returned from the target
  14. // after it receives an inquiry.
  15. //
  16. // This structure may be extended by the number of bytes specified
  17. // in the field AdditionalLength. The defined size constant only
  18. // includes fields through ProductRevisionLevel.
  19. //
  20. // The NT SCSI drivers are only interested in the first 36 bytes of data.
  21. //
  22. #define INQUIRYDATABUFFERSIZE 36
  23. typedef struct _INQUIRYDATA {
  24. UCHAR DeviceType : 5;
  25. UCHAR DeviceTypeQualifier : 3;
  26. UCHAR DeviceTypeModifier : 7;
  27. UCHAR RemovableMedia : 1;
  28. UCHAR Versions;
  29. UCHAR ResponseDataFormat;
  30. UCHAR AdditionalLength;
  31. UCHAR Reserved[2];
  32. UCHAR SoftReset : 1;
  33. UCHAR CommandQueue : 1;
  34. UCHAR Reserved2 : 1;
  35. UCHAR LinkedCommands : 1;
  36. UCHAR Synchronous : 1;
  37. UCHAR Wide16Bit : 1;
  38. UCHAR Wide32Bit : 1;
  39. UCHAR RelativeAddressing : 1;
  40. UCHAR VendorId[8];
  41. UCHAR ProductId[16];
  42. UCHAR ProductRevisionLevel[4];
  43. UCHAR VendorSpecific[20];
  44. UCHAR Reserved3[40];
  45. } INQUIRYDATA, *PINQUIRYDATA;
  46. //
  47. // Inquiry defines. Used to interpret data returned from target as result
  48. // of inquiry command.
  49. //
  50. // DeviceType field
  51. //
  52. #define DIRECT_ACCESS_DEVICE 0x00 // disks
  53. #define SEQUENTIAL_ACCESS_DEVICE 0x01 // tapes
  54. #define PRINTER_DEVICE 0x02 // printers
  55. #define PROCESSOR_DEVICE 0x03 // scanners, printers, etc
  56. #define WRITE_ONCE_READ_MULTIPLE_DEVICE 0x04 // worms
  57. #define READ_ONLY_DIRECT_ACCESS_DEVICE 0x05 // cdroms
  58. #define SCANNER_DEVICE 0x06 // scanners
  59. #define OPTICAL_DEVICE 0x07 // optical disks
  60. #define MEDIUM_CHANGER 0x08 // jukebox
  61. #define COMMUNICATION_DEVICE 0x09 // network
  62. #define LOGICAL_UNIT_NOT_PRESENT_DEVICE 0x7F
  63. #define DEVICE_QUALIFIER_NOT_SUPPORTED 0x03
  64. //
  65. // DeviceTypeQualifier field
  66. //
  67. #define DEVICE_CONNECTED 0x00