ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

scsiscan.h
Go to the documentation of this file.
00001 /*
00002  * scsiscan.h
00003  *
00004  * SCSI scanner driver interface
00005  *
00006  * This file is part of the w32api package.
00007  *
00008  * Contributors:
00009  *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
00010  *
00011  * THIS SOFTWARE IS NOT COPYRIGHTED
00012  *
00013  * This source code is offered for use in the public domain. You may
00014  * use, modify or distribute it freely.
00015  *
00016  * This code is distributed in the hope that it will be useful but
00017  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
00018  * DISCLAIMED. This includes but is not limited to warranties of
00019  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00020  *
00021  */
00022 
00023 #ifndef __SCSISCAN_H
00024 #define __SCSISCAN_H
00025 
00026 #ifdef __cplusplus
00027 extern "C" {
00028 #endif
00029 
00030 #define IOCTL_SCSISCAN_CMD \
00031   CTL_CODE(FILE_DEVICE_SCANNER, SCSISCAN_CMD_CODE, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
00032 
00033 #define IOCTL_SCSISCAN_LOCKDEVICE \
00034   CTL_CODE(FILE_DEVICE_SCANNER, SCSISCAN_LOCKDEVICE, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
00035 
00036 #define IOCTL_SCSISCAN_SET_TIMEOUT \
00037   CTL_CODE(FILE_DEVICE_SCANNER, SCSISCAN_SET_TIMEOUT,   METHOD_BUFFERED, FILE_ANY_ACCESS)
00038 
00039 #define IOCTL_SCSISCAN_GET_INFO \
00040   CTL_CODE(FILE_DEVICE_SCANNER, SCSISCAN_GET_INFO, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
00041 
00042 #define IOCTL_SCSISCAN_UNLOCKDEVICE \
00043   CTL_CODE(FILE_DEVICE_SCANNER, SCSISCAN_UNLOCKDEVICE, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
00044 
00045 
00046 /* SCSISCAN_CMD.SrbFlags constants */
00047 #define SRB_FLAGS_DISABLE_SYNCH_TRANSFER  0x00000008
00048 #define SRB_FLAGS_DISABLE_AUTOSENSE       0x00000020
00049 #define SRB_FLAGS_DATA_IN                 0x00000040
00050 #define SRB_FLAGS_DATA_OUT                0x00000080
00051 #define SRB_FLAGS_NO_DATA_TRANSFER        0x00000000
00052 
00053 /* SCSISCAN_CMD.pSrbStatus constants */
00054 #define SRB_STATUS_PENDING                  0x00
00055 #define SRB_STATUS_SUCCESS                  0x01
00056 #define SRB_STATUS_ABORTED                  0x02
00057 #define SRB_STATUS_ABORT_FAILED             0x03
00058 #define SRB_STATUS_ERROR                    0x04
00059 #define SRB_STATUS_BUSY                     0x05
00060 #define SRB_STATUS_INVALID_REQUEST          0x06
00061 #define SRB_STATUS_INVALID_PATH_ID          0x07
00062 #define SRB_STATUS_NO_DEVICE                0x08
00063 #define SRB_STATUS_TIMEOUT                  0x09
00064 #define SRB_STATUS_SELECTION_TIMEOUT        0x0A
00065 #define SRB_STATUS_COMMAND_TIMEOUT          0x0B
00066 #define SRB_STATUS_MESSAGE_REJECTED         0x0D
00067 #define SRB_STATUS_BUS_RESET                0x0E
00068 #define SRB_STATUS_PARITY_ERROR             0x0F
00069 #define SRB_STATUS_REQUEST_SENSE_FAILED     0x10
00070 #define SRB_STATUS_NO_HBA                   0x11
00071 #define SRB_STATUS_DATA_OVERRUN             0x12
00072 #define SRB_STATUS_UNEXPECTED_BUS_FREE      0x13
00073 #define SRB_STATUS_PHASE_SEQUENCE_FAILURE   0x14
00074 #define SRB_STATUS_BAD_SRB_BLOCK_LENGTH     0x15
00075 #define SRB_STATUS_REQUEST_FLUSHED          0x16
00076 #define SRB_STATUS_INVALID_LUN              0x20
00077 #define SRB_STATUS_INVALID_TARGET_ID        0x21
00078 #define SRB_STATUS_BAD_FUNCTION             0x22
00079 #define SRB_STATUS_ERROR_RECOVERY           0x23
00080 #define SRB_STATUS_QUEUE_FROZEN             0x40
00081 #define SRB_STATUS_AUTOSENSE_VALID          0x80
00082 
00083 #define SRB_STATUS(Status) (Status & ~(SRB_STATUS_AUTOSENSE_VALID | SRB_STATUS_QUEUE_FROZEN))
00084 
00085 typedef struct _SCSISCAN_CMD {
00086   ULONG  Reserved1;
00087   ULONG  Size;
00088   ULONG  SrbFlags;
00089   UCHAR  CdbLength;
00090   UCHAR  SenseLength;
00091   UCHAR  Reserved2;
00092   UCHAR  Reserved3;
00093   ULONG  TransferLength;
00094   UCHAR  Cdb[16];
00095   PUCHAR  pSrbStatus;
00096   PUCHAR  pSenseBuffer;
00097 } SCSISCAN_CMD, *PSCSISCAN_CMD;
00098 
00099 #define MAX_STRING 128
00100 
00101 /* SCSISCAN_INFO.Flags constants */
00102 #define SCSISCAN_RESERVED         0x000
00103 #define SCSISCAN_CMD_CODE         0x004
00104 #define SCSISCAN_LOCKDEVICE       0x005
00105 #define SCSISCAN_UNLOCKDEVICE     0x006
00106 #define SCSISCAN_SET_TIMEOUT      0x007
00107 #define SCSISCAN_GET_INFO         0x008
00108 
00109 typedef struct _SCSISCAN_INFO {
00110   ULONG  Size;
00111   ULONG  Flags;
00112   UCHAR  PortNumber;
00113   UCHAR  PathId;
00114   UCHAR  TargetId;
00115   UCHAR  Lun;
00116   UCHAR  AdapterName[MAX_STRING];
00117   ULONG  Reserved;
00118 } SCSISCAN_INFO, *PSCSISCAN_INFO;
00119 
00120 #ifdef __cplusplus
00121 }
00122 #endif
00123 
00124 #endif /* __SCSISCAN_H */

Generated on Sat May 26 2012 04:28:56 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.