scsi.h

来自「开放源码的编译器open watcom 1.6.0版的源代码」· C头文件 代码 · 共 1,695 行 · 第 1/4 页

H
1,695
字号
    UCHAR  Control;
  } MODE_SENSE10, *PMODE_SENSE10;
  
  struct _MODE_SELECT {
    UCHAR  OperationCode;
    UCHAR  SPBit : 1;
    UCHAR  Reserved1 : 3;
    UCHAR  PFBit : 1;
    UCHAR  LogicalUnitNumber : 3;
    UCHAR  Reserved2[2];
    UCHAR  ParameterListLength;
    UCHAR  Control;
  } MODE_SELECT, *PMODE_SELECT;
  
  struct _MODE_SELECT10 {
    UCHAR  OperationCode;
    UCHAR  SPBit : 1;
    UCHAR  Reserved1 : 3;
    UCHAR  PFBit : 1;
    UCHAR  LogicalUnitNumber : 3;
    UCHAR  Reserved2[5];
    UCHAR  ParameterListLength[2];
    UCHAR  Control;
  } MODE_SELECT10, *PMODE_SELECT10;
  
  struct _LOCATE {
    UCHAR  OperationCode;
    UCHAR  Immediate : 1;
    UCHAR  CPBit : 1;
    UCHAR  BTBit : 1;
    UCHAR  Reserved1 : 2;
    UCHAR  LogicalUnitNumber : 3;
    UCHAR  Reserved3;
    UCHAR  LogicalBlockAddress[4];
    UCHAR  Reserved4;
    UCHAR  Partition;
    UCHAR  Control;
  } LOCATE, *PLOCATE;
  
  struct _LOGSENSE {
    UCHAR  OperationCode;
    UCHAR  SPBit : 1;
    UCHAR  PPCBit : 1;
    UCHAR  Reserved1 : 3;
    UCHAR  LogicalUnitNumber : 3;
    UCHAR  PageCode : 6;
    UCHAR  PCBit : 2;
    UCHAR  Reserved2;
    UCHAR  Reserved3;
    UCHAR  ParameterPointer[2];
    UCHAR  AllocationLength[2];
    UCHAR  Control;
  } LOGSENSE, *PLOGSENSE;
  
  struct _LOGSELECT {
    UCHAR  OperationCode;
    UCHAR  SPBit : 1;
    UCHAR  PCRBit : 1;
    UCHAR  Reserved1 : 3;
    UCHAR  LogicalUnitNumber : 3;
    UCHAR  Reserved : 6;
    UCHAR  PCBit : 2;
    UCHAR  Reserved2[4];
    UCHAR  ParameterListLength[2];
    UCHAR  Control;
  } LOGSELECT, *PLOGSELECT;
  
  struct _PRINT {
    UCHAR  OperationCode;
    UCHAR  Reserved : 5;
    UCHAR  LogicalUnitNumber : 3;
    UCHAR  TransferLength[3];
    UCHAR  Control;
  } PRINT, *PPRINT;
  
  struct _SEEK {
    UCHAR  OperationCode;
    UCHAR  Reserved1 : 5;
    UCHAR  LogicalUnitNumber : 3;
    UCHAR  LogicalBlockAddress[4];
    UCHAR  Reserved2[3];
    UCHAR  Control;
  } SEEK, *PSEEK;
  
  struct _ERASE {
    UCHAR  OperationCode;
    UCHAR  Long : 1;
    UCHAR  Immediate : 1;
    UCHAR  Reserved1 : 3;
    UCHAR  LogicalUnitNumber : 3;
    UCHAR  Reserved2[3];
    UCHAR  Control;
  } ERASE, *PERASE;
  
  struct _START_STOP {
    UCHAR  OperationCode;
    UCHAR  Immediate: 1;
    UCHAR  Reserved1 : 4;
    UCHAR  LogicalUnitNumber : 3;
    UCHAR  Reserved2[2];
    UCHAR  Start : 1;
    UCHAR  LoadEject : 1;
    UCHAR  Reserved3 : 6;
    UCHAR  Control;
  } START_STOP, *PSTART_STOP;
  
  struct _MEDIA_REMOVAL {
    UCHAR  OperationCode;
    UCHAR  Reserved1 : 5;
    UCHAR  LogicalUnitNumber : 3;
    UCHAR  Reserved2[2];
  
    UCHAR  Prevent : 1;
    UCHAR  Persistant : 1;
    UCHAR  Reserved3 : 6;
  
    UCHAR  Control;
  } MEDIA_REMOVAL, *PMEDIA_REMOVAL;
  
  struct _SEEK_BLOCK {
    UCHAR  OperationCode;
    UCHAR  Immediate : 1;
    UCHAR  Reserved1 : 7;
    UCHAR  BlockAddress[3];
    UCHAR  Link : 1;
    UCHAR  Flag : 1;
    UCHAR  Reserved2 : 4;
    UCHAR  VendorUnique : 2;
  } SEEK_BLOCK, *PSEEK_BLOCK;
  
  struct _REQUEST_BLOCK_ADDRESS {
    UCHAR  OperationCode;
    UCHAR  Reserved1[3];
    UCHAR  AllocationLength;
    UCHAR  Link : 1;
    UCHAR  Flag : 1;
    UCHAR  Reserved2 : 4;
    UCHAR  VendorUnique : 2;
  } REQUEST_BLOCK_ADDRESS, *PREQUEST_BLOCK_ADDRESS;
  
  struct _PARTITION {
    UCHAR  OperationCode;
    UCHAR  Immediate : 1;
    UCHAR  Sel: 1;
    UCHAR  PartitionSelect : 6;
    UCHAR  Reserved1[3];
    UCHAR  Control;
  } PARTITION, *PPARTITION;
  
  struct _WRITE_TAPE_MARKS {
    UCHAR  OperationCode;
    UCHAR  Immediate : 1;
    UCHAR  WriteSetMarks: 1;
    UCHAR  Reserved : 3;
    UCHAR  LogicalUnitNumber : 3;
    UCHAR  TransferLength[3];
    UCHAR  Control;
  } WRITE_TAPE_MARKS, *PWRITE_TAPE_MARKS;
  
  struct _SPACE_TAPE_MARKS {
    UCHAR  OperationCode;
    UCHAR  Code : 3;
    UCHAR  Reserved : 2;
    UCHAR  LogicalUnitNumber : 3;
    UCHAR  NumMarksMSB ;
    UCHAR  NumMarks;
    UCHAR  NumMarksLSB;
  union {
        UCHAR  value;
      struct {
            UCHAR  Link : 1;
            UCHAR  Flag : 1;
            UCHAR  Reserved : 4;
            UCHAR  VendorUnique : 2;
      } Fields;
  } Byte6;
  } SPACE_TAPE_MARKS, *PSPACE_TAPE_MARKS;
  
  struct _READ_POSITION {
    UCHAR  Operation;
    UCHAR  BlockType : 1;
    UCHAR  Reserved1 : 4;
    UCHAR  Lun : 3;
    UCHAR  Reserved2[7];
    UCHAR  Control;
  } READ_POSITION, *PREAD_POSITION;
  
  struct _CDB6READWRITETAPE {
    UCHAR  OperationCode;
    UCHAR  VendorSpecific : 5;
    UCHAR  Reserved : 3;
    UCHAR  TransferLenMSB;
    UCHAR  TransferLen;
    UCHAR  TransferLenLSB;
    UCHAR  Link : 1;
    UCHAR  Flag : 1;
    UCHAR  Reserved1 : 4;
    UCHAR  VendorUnique : 2;
  } CDB6READWRITETAPE, *PCDB6READWRITETAPE;
  
  struct _INIT_ELEMENT_STATUS {
    UCHAR  OperationCode;
    UCHAR  Reserved1 : 5;
    UCHAR  LogicalUnitNubmer : 3;
    UCHAR  Reserved2[3];
    UCHAR  Reserved3 : 7;
    UCHAR  NoBarCode : 1;
  } INIT_ELEMENT_STATUS, *PINIT_ELEMENT_STATUS;
  
  struct _INITIALIZE_ELEMENT_RANGE {
    UCHAR  OperationCode;
    UCHAR  Range : 1;
    UCHAR  Reserved1 : 4;
    UCHAR  LogicalUnitNubmer : 3;
    UCHAR  FirstElementAddress[2];
    UCHAR  Reserved2[2];
    UCHAR  NumberOfElements[2];
    UCHAR  Reserved3;
    UCHAR  Reserved4 : 7;
    UCHAR  NoBarCode : 1;
  } INITIALIZE_ELEMENT_RANGE, *PINITIALIZE_ELEMENT_RANGE;
  
  struct _POSITION_TO_ELEMENT {
    UCHAR  OperationCode;
    UCHAR  Reserved1 : 5;
    UCHAR  LogicalUnitNumber : 3;
    UCHAR  TransportElementAddress[2];
    UCHAR  DestinationElementAddress[2];
    UCHAR  Reserved2[2];
    UCHAR  Flip : 1;
    UCHAR  Reserved3 : 7;
    UCHAR  Control;
  } POSITION_TO_ELEMENT, *PPOSITION_TO_ELEMENT;
  
  struct _MOVE_MEDIUM {
    UCHAR  OperationCode;
    UCHAR  Reserved1 : 5;
    UCHAR  LogicalUnitNumber : 3;
    UCHAR  TransportElementAddress[2];
    UCHAR  SourceElementAddress[2];
    UCHAR  DestinationElementAddress[2];
    UCHAR  Reserved2[2];
    UCHAR  Flip : 1;
    UCHAR  Reserved3 : 7;
    UCHAR  Control;
  } MOVE_MEDIUM, *PMOVE_MEDIUM;
  
  struct _EXCHANGE_MEDIUM {
    UCHAR  OperationCode;
    UCHAR  Reserved1 : 5;
    UCHAR  LogicalUnitNumber : 3;
    UCHAR  TransportElementAddress[2];
    UCHAR  SourceElementAddress[2];
    UCHAR  Destination1ElementAddress[2];
    UCHAR  Destination2ElementAddress[2];
    UCHAR  Flip1 : 1;
    UCHAR  Flip2 : 1;
    UCHAR  Reserved3 : 6;
    UCHAR  Control;
  } EXCHANGE_MEDIUM, *PEXCHANGE_MEDIUM;
  
  struct _READ_ELEMENT_STATUS {
    UCHAR  OperationCode;
    UCHAR  ElementType : 4;
    UCHAR  VolTag : 1;
    UCHAR  LogicalUnitNumber : 3;
    UCHAR  StartingElementAddress[2];
    UCHAR  NumberOfElements[2];
    UCHAR  Reserved1;
    UCHAR  AllocationLength[3];
    UCHAR  Reserved2;
    UCHAR  Control;
  } READ_ELEMENT_STATUS, *PREAD_ELEMENT_STATUS;
  
  struct _SEND_VOLUME_TAG {
    UCHAR  OperationCode;
    UCHAR  ElementType : 4;
    UCHAR  Reserved1 : 1;
    UCHAR  LogicalUnitNumber : 3;
    UCHAR  StartingElementAddress[2];
    UCHAR  Reserved2;
    UCHAR  ActionCode : 5;
    UCHAR  Reserved3 : 3;
    UCHAR  Reserved4[2];
    UCHAR  ParameterListLength[2];
    UCHAR  Reserved5;
    UCHAR  Control;
  } SEND_VOLUME_TAG, *PSEND_VOLUME_TAG;
  
  struct _REQUEST_VOLUME_ELEMENT_ADDRESS {
    UCHAR  OperationCode;
    UCHAR  ElementType : 4;
    UCHAR  VolTag : 1;
    UCHAR  LogicalUnitNumber : 3;
    UCHAR  StartingElementAddress[2];
    UCHAR  NumberElements[2];
    UCHAR  Reserved1;
    UCHAR  AllocationLength[3];
    UCHAR  Reserved2;
    UCHAR  Control;
  } REQUEST_VOLUME_ELEMENT_ADDRESS, *PREQUEST_VOLUME_ELEMENT_ADDRESS;
  
  struct _LOAD_UNLOAD {
    UCHAR  OperationCode;
    UCHAR  Immediate : 1;
    UCHAR  Reserved1 : 4;
    UCHAR  Lun : 3;
    UCHAR  Reserved2[2];
    UCHAR  Start : 1;
    UCHAR  LoadEject : 1;
    UCHAR  Reserved3: 6;
    UCHAR  Reserved4[3];
    UCHAR  Slot;
    UCHAR  Reserved5[3];
  } LOAD_UNLOAD, *PLOAD_UNLOAD;
  
  struct _MECH_STATUS {
    UCHAR  OperationCode;
    UCHAR  Reserved : 5;
    UCHAR  Lun : 3;
    UCHAR  Reserved1[6];
    UCHAR  AllocationLength[2];
    UCHAR  Reserved2[1];
    UCHAR  Control;
  } MECH_STATUS, *PMECH_STATUS;
  
  struct _SYNCHRONIZE_CACHE10 {
  
    UCHAR  OperationCode;
  
    UCHAR  RelAddr : 1;
    UCHAR  Immediate : 1;
    UCHAR  Reserved : 3;
    UCHAR  Lun : 3;
  
    UCHAR  LogicalBlockAddress[4];
    UCHAR  Reserved2;
    UCHAR  BlockCount[2];
    UCHAR  Control;
  } SYNCHRONIZE_CACHE10, *PSYNCHRONIZE_CACHE10;
  
  struct _GET_EVENT_STATUS_NOTIFICATION {
    UCHAR  OperationCode;
  
    UCHAR  Immediate : 1;
    UCHAR  Reserved : 4;
    UCHAR  Lun : 3;
  
    UCHAR  Reserved2[2];
    UCHAR  NotificationClassRequest;
    UCHAR  Reserved3[2];
    UCHAR  EventListLength[2];
  
    UCHAR  Control;
  } GET_EVENT_STATUS_NOTIFICATION, *PGET_EVENT_STATUS_NOTIFICATION;
  
  struct _READ_DVD_STRUCTURE {
    UCHAR  OperationCode;
    UCHAR  Reserved1 : 5;
    UCHAR  Lun : 3;
    UCHAR  RMDBlockNumber[4];
    UCHAR  LayerNumber;
    UCHAR  Format;
    UCHAR  AllocationLength[2];
    UCHAR  Reserved3 : 6;
    UCHAR  AGID : 2;
    UCHAR  Control;
  } READ_DVD_STRUCTURE, *PREAD_DVD_STRUCTURE;
  
  struct _SEND_DVD_STRUCTURE {
    UCHAR  OperationCode;
    UCHAR  Reserved1 : 5;
    UCHAR  Lun : 3;
    UCHAR  Reserved2[5];
    UCHAR  Format;
    UCHAR  ParameterListLength[2];
    UCHAR  Reserved3;
    UCHAR  Control;
  } SEND_DVD_STRUCTURE, *PSEND_DVD_STRUCTURE;
  
  struct _SEND_KEY {
    UCHAR  OperationCode;
    UCHAR  Reserved1 : 5;
    UCHAR  Lun : 3;
    UCHAR  Reserved2[6];
    UCHAR  ParameterListLength[2];
    UCHAR  KeyFormat : 6;
    UCHAR  AGID : 2;
    UCHAR  Control;
  } SEND_KEY, *PSEND_KEY;
  
  struct _REPORT_KEY {
    UCHAR  OperationCode;
    UCHAR  Reserved1 : 5;
    UCHAR  Lun : 3;
    UCHAR  LogicalBlockAddress[4];
    UCHAR  Reserved2[2];
    UCHAR  AllocationLength[2];
    UCHAR  KeyFormat : 6;
    UCHAR  AGID : 2;
    UCHAR  Control;
  } REPORT_KEY, *PREPORT_KEY;
  
  struct _SET_READ_AHEAD {
    UCHAR  OperationCode;
    UCHAR  Reserved1 : 5;
    UCHAR  Lun : 3;
    UCHAR  TriggerLBA[4];
    UCHAR  ReadAheadLBA[4];
    UCHAR  Reserved2;
    UCHAR  Control;
  } SET_READ_AHEAD, *PSET_READ_AHEAD;
  
  struct _READ_FORMATTED_CAPACITIES {
    UCHAR  OperationCode;
    UCHAR  Reserved1 : 5;
    UCHAR  Lun : 3;
    UCHAR  Reserved2[5];
    UCHAR  AllocationLength[2];
    UCHAR  Control;
  } READ_FORMATTED_CAPACITIES, *PREAD_FORMATTED_CAPACITIES;
  
  struct _REPORT_LUNS {
    UCHAR  OperationCode;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?