Modified: trunk/reactos/drivers/storage/atapi/atapi.c
Modified: trunk/reactos/drivers/storage/scsiport/scsiport.c
Modified: trunk/reactos/drivers/storage/scsiport/scsiport.xml
Deleted: trunk/reactos/include/ddk/scsi.h
Deleted: trunk/reactos/include/ddk/srb.h
--- trunk/reactos/drivers/storage/atapi/atapi.c 2005-06-18 20:29:31 UTC (rev 16059)
+++ trunk/reactos/drivers/storage/atapi/atapi.c 2005-06-18 20:55:09 UTC (rev 16060)
@@ -449,9 +449,9 @@
}
DevExt->Handler = NULL;
DevExt->CommandPortBase = (ULONG)IoBase;
- ConfigInfo->AccessRanges[0].RangeStart = IoAddress;
- ConfigInfo->AccessRanges[0].RangeLength = 8;
- ConfigInfo->AccessRanges[0].RangeInMemory = FALSE;
+ (*ConfigInfo->AccessRanges)[0].RangeStart = IoAddress;
+ (*ConfigInfo->AccessRanges)[0].RangeLength = 8;
+ (*ConfigInfo->AccessRanges)[0].RangeInMemory = FALSE;
if (ControlPortBase)
{
@@ -469,9 +469,9 @@
return FALSE;
}
DevExt->ControlPortBase = (ULONG)IoBase;
- ConfigInfo->AccessRanges[1].RangeStart = IoAddress;
- ConfigInfo->AccessRanges[1].RangeLength = 1;
- ConfigInfo->AccessRanges[1].RangeInMemory = FALSE;
+ (*ConfigInfo->AccessRanges)[1].RangeStart = IoAddress;
+ (*ConfigInfo->AccessRanges)[1].RangeLength = 1;
+ (*ConfigInfo->AccessRanges)[1].RangeInMemory = FALSE;
}
if (BusMasterPortBase)
{
@@ -489,9 +489,9 @@
return FALSE;
}
DevExt->BusMasterRegisterBase = (ULONG)IoBase;
- ConfigInfo->AccessRanges[2].RangeStart = IoAddress;
- ConfigInfo->AccessRanges[2].RangeLength = 8;
- ConfigInfo->AccessRanges[2].RangeInMemory = FALSE;
+ (*ConfigInfo->AccessRanges)[2].RangeStart = IoAddress;
+ (*ConfigInfo->AccessRanges)[2].RangeLength = 8;
+ (*ConfigInfo->AccessRanges)[2].RangeInMemory = FALSE;
#ifdef ENABLE_DMA
// ConfigInfo->DmaChannel = SP_UNINITIALIZED_VALUE;
// ConfigInfo->DmaPort = SP_UNINITIALIZED_VALUE;
@@ -1094,10 +1094,10 @@
DPRINT("AtapiFindDevices() called\n");
- CommandPortBase = ScsiPortConvertPhysicalAddressToUlong(ConfigInfo->AccessRanges[0].RangeStart);
+ CommandPortBase = ScsiPortConvertPhysicalAddressToUlong((*ConfigInfo->AccessRanges)[0].RangeStart);
DPRINT(" CommandPortBase: %x\n", CommandPortBase);
- ControlPortBase = ScsiPortConvertPhysicalAddressToUlong(ConfigInfo->AccessRanges[1].RangeStart);
+ ControlPortBase = ScsiPortConvertPhysicalAddressToUlong((*ConfigInfo->AccessRanges)[1].RangeStart);
DPRINT(" ControlPortBase: %x\n", ControlPortBase);
for (UnitNumber = 0; UnitNumber < 2; UnitNumber++)
--- trunk/reactos/drivers/storage/scsiport/scsiport.c 2005-06-18 20:29:31 UTC (rev 16059)
+++ trunk/reactos/drivers/storage/scsiport/scsiport.c 2005-06-18 20:55:09 UTC (rev 16060)
@@ -274,6 +274,7 @@
/*
* @implemented
*/
+#undef ScsiPortConvertPhysicalAddressToUlong
ULONG STDCALL
ScsiPortConvertPhysicalAddressToUlong(IN SCSI_PHYSICAL_ADDRESS Address)
{
@@ -925,7 +926,7 @@
PortConfig->DemandMode = FALSE;
PortConfig->MapBuffers = HwInitializationData->MapBuffers;
PortConfig->NeedPhysicalAddresses = HwInitializationData->NeedPhysicalAddresses;
- PortConfig->TaggedQueuing = HwInitializationData->TaggedQueueing;
+ PortConfig->TaggedQueuing = HwInitializationData->TaggedQueuing;
PortConfig->AutoRequestSense = HwInitializationData->AutoRequestSense;
PortConfig->MultipleRequestPerLu = HwInitializationData->MultipleRequestPerLu;
PortConfig->ReceiveEvent = HwInitializationData->ReceiveEvent;
@@ -937,7 +938,7 @@
PortConfig->SrbExtensionSize = HwInitializationData->SrbExtensionSize;
PortConfig->SpecificLuExtensionSize = HwInitializationData->SpecificLuExtensionSize;
- PortConfig->AccessRanges = (PACCESS_RANGE)(PortConfig + 1);
+ PortConfig->AccessRanges = (ACCESS_RANGE(*)[])(PortConfig + 1);
/* Search for matching PCI device */
if ((HwInitializationData->AdapterInterfaceType == PCIBus) &&
@@ -1458,9 +1459,9 @@
for (i = 0; i < PortConfig->NumberOfAccessRanges; i++)
{
- PortConfig->AccessRanges[i].RangeStart.QuadPart =
+ (*PortConfig->AccessRanges)[i].RangeStart.QuadPart =
PciConfig.u.type0.BaseAddresses[i] & PCI_ADDRESS_IO_ADDRESS_MASK;
- if (PortConfig->AccessRanges[i].RangeStart.QuadPart != 0)
+ if ((*PortConfig->AccessRanges)[i].RangeStart.QuadPart != 0)
{
RangeLength = (ULONG)-1;
HalSetBusDataByOffset (PCIConfiguration,
@@ -1485,9 +1486,9 @@
sizeof(ULONG));
if (RangeLength != 0)
{
- PortConfig->AccessRanges[i].RangeLength =
+ (*PortConfig->AccessRanges)[i].RangeLength =
-(RangeLength & PCI_ADDRESS_IO_ADDRESS_MASK);
- PortConfig->AccessRanges[i].RangeInMemory =
+ (*PortConfig->AccessRanges)[i].RangeInMemory =
!(PciConfig.u.type0.BaseAddresses[i] & PCI_ADDRESS_IO_SPACE);
DPRINT("RangeStart 0x%lX RangeLength 0x%lX RangeInMemory %s\n",
@@ -2470,7 +2471,7 @@
}
/* Set 'IOAddress' (REG_DWORD) value (NT4 only) */
- UlongData = ScsiPortConvertPhysicalAddressToUlong(DeviceExtension->PortConfig->AccessRanges[0].RangeStart);
+ UlongData = ScsiPortConvertPhysicalAddressToUlong((*DeviceExtension->PortConfig->AccessRanges)[0].RangeStart);
DPRINT(" IOAddress = %lx\n", UlongData);
RtlInitUnicodeString(&ValueName,
L"IOAddress");
--- trunk/reactos/drivers/storage/scsiport/scsiport.xml 2005-06-18 20:29:31 UTC (rev 16059)
+++ trunk/reactos/drivers/storage/scsiport/scsiport.xml 2005-06-18 20:55:09 UTC (rev 16060)
@@ -1,6 +1,7 @@
<module name="scsiport" type="kernelmodedriver" installbase="system32/drivers" installname="scsiport.sys">
<bootstrap base="reactos" />
<define name="__USE_W32API" />
+ <define name="_SCSIPORT_" />
<importlibrary definition="scsiport.def" />
<include base="scsiport">.</include>
<library>ntoskrnl</library>
--- trunk/reactos/include/ddk/scsi.h 2005-06-18 20:29:31 UTC (rev 16059)
+++ trunk/reactos/include/ddk/scsi.h 2005-06-18 20:55:09 UTC (rev 16060)
@@ -1,1306 +0,0 @@
-/* $Id$
- *
- * COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS kernel
- * FILE: services/storage/include/scsi.h
- * PURPOSE: SCSI class driver definitions
- * PROGRAMMER: Eric Kohl (ekohl@rz-online.de)
- */
-
-#ifndef __STORAGE_INCLUDE_SCSI_H
-#define __STORAGE_INCLUDE_SCSI_H
-
-
-/* Command Descriptor Block */
-
-typedef union _CDB
-{
- /* Generic 6-Byte CDB */
- struct _CDB6GENERIC
- {
- UCHAR OperationCode;
- UCHAR Immediate:1;
- UCHAR CommandUniqueBits:4;
- UCHAR LogicalUnitNumber:3;
- UCHAR CommandUniqueBytes[3];
- UCHAR Link:1;
- UCHAR Flag:1;
- UCHAR Reserved:4;
- UCHAR VendorUnique:2;
- } CDB6GENERIC, *PCDB6GENERIC;
-
- /* Standard 6-byte CDB */
- struct _CDB6READWRITE
- {
- UCHAR OperationCode;
- UCHAR LogicalBlockMsb1:5;
- UCHAR LogicalUnitNumber:3;
- UCHAR LogicalBlockMsb0;
- UCHAR LogicalBlockLsb;
- UCHAR TransferBlocks;
- UCHAR Control;
- } CDB6READWRITE, *PCDB6READWRITE;
-
- /* SCSI Inquiry CDB */
- struct _CDB6INQUIRY
- {
- UCHAR OperationCode;
- UCHAR Reserved1:5;
- UCHAR LogicalUnitNumber:3;
- UCHAR PageCode;
- UCHAR IReserved;
- UCHAR AllocationLength;
- UCHAR Control;
- } CDB6INQUIRY, *PCDB6INQUIRY;
-
- /* SCSI Format CDB */
- struct _CDB6FORMAT
- {
- UCHAR OperationCode;
- UCHAR FormatControl:5;
- UCHAR LogicalUnitNumber:3;
- UCHAR FReserved1;
- UCHAR InterleaveMsb;
- UCHAR InterleaveLsb;
- UCHAR FReserved2;
- } CDB6FORMAT, *PCDB6FORMAT;
-
- /* Standard 10-byte CDB */
- struct _CDB10
- {
- UCHAR OperationCode;
- UCHAR RelativeAddress:1;
- UCHAR Reserved1:2;
- UCHAR ForceUnitAccess:1;
- UCHAR DisablePageOut:1;
- UCHAR LogicalUnitNumber:3;
- UCHAR LogicalBlockByte0;
- UCHAR LogicalBlockByte1;
- UCHAR LogicalBlockByte2;
- UCHAR LogicalBlockByte3;
- UCHAR Reserved2;
- UCHAR TransferBlocksMsb;
- UCHAR TransferBlocksLsb;
- UCHAR Control;
- } CDB10, *PCDB10;
-
- /* CD Rom Audio CDBs */
- struct _PAUSE_RESUME
- {
- UCHAR OperationCode;
- UCHAR Reserved1:5;
- UCHAR LogicalUnitNumber:3;
- UCHAR Reserved2[6];
- UCHAR Action;
- UCHAR Control;
- } PAUSE_RESUME, *PPAUSE_RESUME;
-
- /* Read Table of Contents */
- struct _READ_TOC
- {
- UCHAR OperationCode;
- UCHAR Reserved0:1;
- UCHAR Msf:1;
- UCHAR Reserved1:3;
- UCHAR LogicalUnitNumber:3;
- UCHAR Reserved2[4];
- UCHAR StartingTrack;
- UCHAR AllocationLength[2];
- UCHAR Control:6;
- UCHAR Format:2;
- } READ_TOC, *PREAD_TOC;
-
- struct _PLAY_AUDIO_MSF
- {
- UCHAR OperationCode;
- UCHAR Reserved1:5;
- UCHAR LogicalUnitNumber:3;
- UCHAR Reserved2;
- UCHAR StartingM;
- UCHAR StartingS;
- UCHAR StartingF;
- UCHAR EndingM;
- UCHAR EndingS;
- UCHAR EndingF;
- UCHAR Control;
- } PLAY_AUDIO_MSF, *PPLAY_AUDIO_MSF;
-
- /* Read SubChannel Data */
- struct _SUBCHANNEL
- {
- UCHAR OperationCode;
- UCHAR Reserved0:1;
- UCHAR Msf:1;
- UCHAR Reserved1:3;
- UCHAR LogicalUnitNumber:3;
- UCHAR Reserved2:6;
- UCHAR SubQ:1;
- UCHAR Reserved3:1;
- UCHAR Format;
- UCHAR Reserved4[2];
- UCHAR TrackNumber;
- UCHAR AllocationLength[2];
- UCHAR Control;
- } SUBCHANNEL, *PSUBCHANNEL;
-
- /* Read CD. Used by Atapi for raw sector reads. */
- struct _READ_CD
- {
- UCHAR OperationCode;
- UCHAR Reserved0:2;
- UCHAR ExpectedSectorType:3;
- UCHAR Reserved1:3;
- UCHAR StartingLBA[4];
- UCHAR TransferBlocks[3];
- UCHAR Reserved2:1;
- UCHAR ErrorFlags:2;
- UCHAR IncludeEDC:1;
- UCHAR IncludeUserData:1;
- UCHAR HeaderCode:2;
- UCHAR IncludeSyncData:1;
- UCHAR SubChannelSelection:3;
- UCHAR Reserved3:5;
- UCHAR Reserved4;
- } READ_CD, *PREAD_CD;
-
- /* Plextor Read CD-DA */
- struct _PLXTR_READ_CDDA
- {
- UCHAR OperationCode;
- UCHAR Reserved0:5;
- UCHAR LogicalUnitNumber:3;
- UCHAR LogicalBlockByte0;
- UCHAR LogicalBlockByte1;
- UCHAR LogicalBlockByte2;
- UCHAR LogicalBlockByte3;
- UCHAR TransferBlockByte0;
- UCHAR TransferBlockByte1;
- UCHAR TransferBlockByte2;
- UCHAR TransferBlockByte3;
- UCHAR SubCode;
- UCHAR Control;
- } PLXTR_READ_CDDA, *PPLXTR_READ_CDDA;
-
- /* NEC Read CD-DA */
- struct _NEC_READ_CDDA
- {
- UCHAR OperationCode;
- UCHAR Reserved0;
- UCHAR LogicalBlockByte0;
- UCHAR LogicalBlockByte1;
- UCHAR LogicalBlockByte2;
- UCHAR LogicalBlockByte3;
- UCHAR Reserved1;
- UCHAR TransferBlockByte0;
- UCHAR TransferBlockByte1;
- UCHAR Control;
- } NEC_READ_CDDA, *PNEC_READ_CDDA;
-
- /* Mode sense */
- struct _MODE_SENSE
- {
- UCHAR OperationCode;
- UCHAR Reserved1:3;
- UCHAR Dbd:1;
- UCHAR Reserved2:1;
- UCHAR LogicalUnitNumber:3;
- UCHAR PageCode:6;
- UCHAR Pc:2;
- UCHAR Reserved3;
- UCHAR AllocationLength;
- UCHAR Control;
- } MODE_SENSE, *PMODE_SENSE;
-
- struct _MODE_SENSE10
- {
- UCHAR OperationCode;
- UCHAR Reserved1:3;
- UCHAR Dbd:1;
- UCHAR Reserved2:1;
- UCHAR LogicalUnitNumber:3;
- UCHAR PageCode:6;
- UCHAR Pc:2;
- UCHAR Reserved3[4];
- UCHAR AllocationLength[2];
- UCHAR Control;
- } MODE_SENSE10, *PMODE_SENSE10;
-
- /* Mode select */
- 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]; /* [0]=MSB, [1]=LSB */
- UCHAR AllocationLength[2]; /* [0]=MSB, [1]=LSB */
- UCHAR Control;
- } LOGSENSE, *PLOGSENSE;
-
- 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;
- UCHAR Control;
- } MEDIA_REMOVAL, *PMEDIA_REMOVAL;
-
- /* Tape CDBs */
- 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;
-
- /* Read tape position */
- struct _READ_POSITION
- {
- UCHAR Operation;
- UCHAR BlockType:1;
- UCHAR Reserved1:4;
- UCHAR Lun:3;
- UCHAR Reserved2[7];
- UCHAR Control;
- } READ_POSITION, *PREAD_POSITION;
-
- /* ReadWrite for Tape */
- 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;
-
- /* Atapi 2.5 Changer 12-byte CDBs */
- struct _LOAD_UNLOAD
- {
- UCHAR OperationCode;
- UCHAR Immediate:1;
- UCHAR Reserved1:7;
- 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 Reserved1[7];
- UCHAR AllocationLength[2];
- UCHAR Reserved2[2];
- } MECH_STATUS, *PMECH_STATUS;
-} CDB, *PCDB;
-
-
-/* Command Descriptor Block constants */
-
-#define CDB6GENERIC_LENGTH 6
-#define CDB10GENERIC_LENGTH 10
-#define CDB12GENERIC_LENGTH 12
-
-#define SETBITON 1
-#define SETBITOFF 0
-
-
-/* Mode Sense/Select page constants */
-
-#define MODE_PAGE_ERROR_RECOVERY 0x01
-#define MODE_PAGE_DISCONNECT 0x02
-#define MODE_PAGE_FORMAT_DEVICE 0x03
-#define MODE_PAGE_RIGID_GEOMETRY 0x04
-#define MODE_PAGE_FLEXIBILE 0x05
-#define MODE_PAGE_VERIFY_ERROR 0x07
-#define MODE_PAGE_CACHING 0x08
-#define MODE_PAGE_PERIPHERAL 0x09
-#define MODE_PAGE_CONTROL 0x0A
-#define MODE_PAGE_MEDIUM_TYPES 0x0B
-#define MODE_PAGE_NOTCH_PARTITION 0x0C
-#define MODE_SENSE_RETURN_ALL 0x3f
-#define MODE_SENSE_CURRENT_VALUES 0x00
-#define MODE_SENSE_CHANGEABLE_VALUES 0x40
-#define MODE_SENSE_DEFAULT_VAULES 0x80
-#define MODE_SENSE_SAVED_VALUES 0xc0
-#define MODE_PAGE_DEVICE_CONFIG 0x10
-#define MODE_PAGE_MEDIUM_PARTITION 0x11
-#define MODE_PAGE_DATA_COMPRESS 0x0f
-#define MODE_PAGE_CAPABILITIES 0x2A
-
-
-/* SCSI CDB operation codes */
-
-#define SCSIOP_TEST_UNIT_READY 0x00
-#define SCSIOP_REZERO_UNIT 0x01
-#define SCSIOP_REWIND 0x01
-#define SCSIOP_REQUEST_BLOCK_ADDR 0x02
-#define SCSIOP_REQUEST_SENSE 0x03
-#define SCSIOP_FORMAT_UNIT 0x04
-#define SCSIOP_READ_BLOCK_LIMITS 0x05
-#define SCSIOP_REASSIGN_BLOCKS 0x07
-#define SCSIOP_READ6 0x08
-#define SCSIOP_RECEIVE 0x08
-#define SCSIOP_WRITE6 0x0A
-#define SCSIOP_PRINT 0x0A
-#define SCSIOP_SEND 0x0A
-#define SCSIOP_SEEK6 0x0B
-#define SCSIOP_TRACK_SELECT 0x0B
-#define SCSIOP_SLEW_PRINT 0x0B
-#define SCSIOP_SEEK_BLOCK 0x0C
-#define SCSIOP_PARTITION 0x0D
-#define SCSIOP_READ_REVERSE 0x0F
-#define SCSIOP_WRITE_FILEMARKS 0x10
-#define SCSIOP_FLUSH_BUFFER 0x10
-#define SCSIOP_SPACE 0x11
-#define SCSIOP_INQUIRY 0x12
-#define SCSIOP_VERIFY6 0x13
-#define SCSIOP_RECOVER_BUF_DATA 0x14
-#define SCSIOP_MODE_SELECT 0x15
-#define SCSIOP_RESERVE_UNIT 0x16
-#define SCSIOP_RELEASE_UNIT 0x17
-#define SCSIOP_COPY 0x18
-#define SCSIOP_ERASE 0x19
-#define SCSIOP_MODE_SENSE 0x1A
-#define SCSIOP_START_STOP_UNIT 0x1B
-#define SCSIOP_STOP_PRINT 0x1B
-#define SCSIOP_LOAD_UNLOAD 0x1B
-#define SCSIOP_RECEIVE_DIAGNOSTIC 0x1C
-#define SCSIOP_SEND_DIAGNOSTIC 0x1D
-#define SCSIOP_MEDIUM_REMOVAL 0x1E
-#define SCSIOP_READ_CAPACITY 0x25
-#define SCSIOP_READ 0x28
-#define SCSIOP_WRITE 0x2A
-#define SCSIOP_SEEK 0x2B
-#define SCSIOP_LOCATE 0x2B
-#define SCSIOP_WRITE_VERIFY 0x2E
-#define SCSIOP_VERIFY 0x2F
-#define SCSIOP_SEARCH_DATA_HIGH 0x30
-#define SCSIOP_SEARCH_DATA_EQUAL 0x31
-#define SCSIOP_SEARCH_DATA_LOW 0x32
-#define SCSIOP_SET_LIMITS 0x33
-#define SCSIOP_READ_POSITION 0x34
-#define SCSIOP_SYNCHRONIZE_CACHE 0x35
-#define SCSIOP_COMPARE 0x39
-#define SCSIOP_COPY_COMPARE 0x3A
-#define SCSIOP_WRITE_DATA_BUFF 0x3B
-#define SCSIOP_READ_DATA_BUFF 0x3C
-#define SCSIOP_CHANGE_DEFINITION 0x40
-#define SCSIOP_READ_SUB_CHANNEL 0x42
-#define SCSIOP_READ_TOC 0x43
-#define SCSIOP_READ_HEADER 0x44
-#define SCSIOP_PLAY_AUDIO 0x45
-#define SCSIOP_PLAY_AUDIO_MSF 0x47
-#define SCSIOP_PLAY_TRACK_INDEX 0x48
-#define SCSIOP_PLAY_TRACK_RELATIVE 0x49
-#define SCSIOP_PAUSE_RESUME 0x4B
-#define SCSIOP_LOG_SELECT 0x4C
-#define SCSIOP_LOG_SENSE 0x4D
-#define SCSIOP_MODE_SELECT10 0x55
-#define SCSIOP_MODE_SENSE10 0x5A
-#define SCSIOP_LOAD_UNLOAD_SLOT 0xA6
-#define SCSIOP_MECHANISM_STATUS 0xBD
-#define SCSIOP_READ_CD 0xBE
-
-/*
- * If the IMMED bit is 1, status is returned as soon
- * as the operation is initiated. If the IMMED bit
- * is 0, status is not returned until the operation
- * is completed.
- */
-
-#define CDB_RETURN_ON_COMPLETION 0
-#define CDB_RETURN_IMMEDIATE 1
-
-
-/*
- * CDB Force media access used in extended read and write commands.
- */
-
-#define CDB_FORCE_MEDIA_ACCESS 0x08
-
-/*
- * Denon CD ROM operation codes
- */
-
-#define SCSIOP_DENON_EJECT_DISC 0xE6
-#define SCSIOP_DENON_STOP_AUDIO 0xE7
-#define SCSIOP_DENON_PLAY_AUDIO 0xE8
-#define SCSIOP_DENON_READ_TOC 0xE9
-#define SCSIOP_DENON_READ_SUBCODE 0xEB
-
-/*
- * SCSI Bus Messages
- */
-
-#define SCSIMESS_ABORT 0x06
-#define SCSIMESS_ABORT_WITH_TAG 0x0D
-#define SCSIMESS_BUS_DEVICE_RESET 0X0C
-#define SCSIMESS_CLEAR_QUEUE 0X0E
-#define SCSIMESS_COMMAND_COMPLETE 0X00
-#define SCSIMESS_DISCONNECT 0X04
-#define SCSIMESS_EXTENDED_MESSAGE 0X01
-#define SCSIMESS_IDENTIFY 0X80
-#define SCSIMESS_IDENTIFY_WITH_DISCON 0XC0
-#define SCSIMESS_IGNORE_WIDE_RESIDUE 0X23
-#define SCSIMESS_INITIATE_RECOVERY 0X0F
-#define SCSIMESS_INIT_DETECTED_ERROR 0X05
-#define SCSIMESS_LINK_CMD_COMP 0X0A
-#define SCSIMESS_LINK_CMD_COMP_W_FLAG 0X0B
-#define SCSIMESS_MESS_PARITY_ERROR 0X09
-#define SCSIMESS_MESSAGE_REJECT 0X07
-#define SCSIMESS_NO_OPERATION 0X08
-#define SCSIMESS_HEAD_OF_QUEUE_TAG 0X21
-#define SCSIMESS_ORDERED_QUEUE_TAG 0X22
-#define SCSIMESS_SIMPLE_QUEUE_TAG 0X20
-#define SCSIMESS_RELEASE_RECOVERY 0X10
-#define SCSIMESS_RESTORE_POINTERS 0X03
-#define SCSIMESS_SAVE_DATA_POINTER 0X02
-#define SCSIMESS_TERMINATE_IO_PROCESS 0X11
-
-/*
- * SCSI Extended Message operation codes
- */
-
-#define SCSIMESS_MODIFY_DATA_POINTER 0X00
-#define SCSIMESS_SYNCHRONOUS_DATA_REQ 0X01
-#define SCSIMESS_WIDE_DATA_REQUEST 0X03
-
-/*
- * SCSI Extended Message Lengths
- */
-
-#define SCSIMESS_MODIFY_DATA_LENGTH 5
-#define SCSIMESS_SYNCH_DATA_LENGTH 3
-#define SCSIMESS_WIDE_DATA_LENGTH 2
-
-/*
- * SCSI extended message structure
- */
-
-#pragma pack (1)
-typedef struct _SCSI_EXTENDED_MESSAGE
-{
- UCHAR InitialMessageCode;
- UCHAR MessageLength;
- UCHAR MessageType;
- union _EXTENDED_ARGUMENTS
- {
- struct
- {
- UCHAR Modifier[4];
- } Modify;
-
- struct
- {
- UCHAR TransferPeriod;
- UCHAR ReqAckOffset;
- } Synchronous;
-
- struct
- {
- UCHAR Width;
- } Wide;
- } ExtendedArguments;
-}SCSI_EXTENDED_MESSAGE, *PSCSI_EXTENDED_MESSAGE;
-#pragma pack ()
-
-
-/* SCSI bus status codes */
-
-#define SCSISTAT_GOOD 0x00
-#define SCSISTAT_CHECK_CONDITION 0x02
-#define SCSISTAT_CONDITION_MET 0x04
-#define SCSISTAT_BUSY 0x08
-#define SCSISTAT_INTERMEDIATE 0x10
-#define SCSISTAT_INTERMEDIATE_COND_MET 0x14
-#define SCSISTAT_RESERVATION_CONFLICT 0x18
-#define SCSISTAT_COMMAND_TERMINATED 0x22
-#define SCSISTAT_QUEUE_FULL 0x28
-
-/*
- * Enable Vital Product Data Flag (EVPD)
- * used with INQUIRY command.
- */
-
-#define CDB_INQUIRY_EVPD 0x01
-
-/*
- * Defines for format CDB
- */
-
-#define LUN0_FORMAT_SAVING_DEFECT_LIST 0
-#define USE_DEFAULTMSB 0
-#define USE_DEFAULTLSB 0
-
-#define START_UNIT_CODE 0x01
-#define STOP_UNIT_CODE 0x00
-
-
-
-//
-// Inquiry buffer structure. This is the data returned from the target
-// after it receives an inquiry.
-//
-// This structure may be extended by the number of bytes specified
-// in the field AdditionalLength. The defined size constant only
-// includes fields through ProductRevisionLevel.
-//
-// The NT SCSI drivers are only interested in the first 36 bytes of data.
-//
-
-#define INQUIRYDATABUFFERSIZE 36
-
-
-typedef struct _INQUIRYDATA
-{
- UCHAR DeviceType:5;
- UCHAR DeviceTypeQualifier:3;
- UCHAR DeviceTypeModifier:7;
- UCHAR RemovableMedia:1;
- UCHAR Versions;
- UCHAR ResponseDataFormat;
- UCHAR AdditionalLength;
- UCHAR Reserved[2];
- UCHAR SoftReset:1;
- UCHAR CommandQueue:1;
- UCHAR Reserved2:1;
- UCHAR LinkedCommands:1;
- UCHAR Synchronous:1;
- UCHAR Wide16Bit:1;
- UCHAR Wide32Bit:1;
- UCHAR RelativeAddressing:1;
- UCHAR VendorId[8];
- UCHAR ProductId[16];
- UCHAR ProductRevisionLevel[4];
- UCHAR VendorSpecific[20];
- UCHAR Reserved3[40];
-} INQUIRYDATA, *PINQUIRYDATA;
-
-//
-// Inquiry defines. Used to interpret data returned from target as result
-// of inquiry command.
-//
-// DeviceType field
-//
-
-#define DIRECT_ACCESS_DEVICE 0x00 // disks
-#define SEQUENTIAL_ACCESS_DEVICE 0x01 // tapes
-#define PRINTER_DEVICE 0x02 // printers
-#define PROCESSOR_DEVICE 0x03 // scanners, printers, etc
-#define WRITE_ONCE_READ_MULTIPLE_DEVICE 0x04 // worms
-#define READ_ONLY_DIRECT_ACCESS_DEVICE 0x05 // cdroms
-#define SCANNER_DEVICE 0x06 // scanners
-#define OPTICAL_DEVICE 0x07 // optical disks
-#define MEDIUM_CHANGER 0x08 // jukebox
-#define COMMUNICATION_DEVICE 0x09 // network
-#define LOGICAL_UNIT_NOT_PRESENT_DEVICE 0x7F
-#define DEVICE_QUALIFIER_NOT_SUPPORTED 0x03
-
-//
-// DeviceTypeQualifier field
-//
-
-#define DEVICE_CONNECTED 0x00
-
-
-/* Sense Data Format */
-
-typedef struct _SENSE_DATA
-{
- UCHAR ErrorCode:7;
- UCHAR Valid:1;
- UCHAR SegmentNumber;
- UCHAR SenseKey:4;
- UCHAR Reserved:1;
- UCHAR IncorrectLength:1;
- UCHAR EndOfMedia:1;
- UCHAR FileMark:1;
- UCHAR Information[4];
- UCHAR AdditionalSenseLength;
- UCHAR CommandSpecificInformation[4];
- UCHAR AdditionalSenseCode;
- UCHAR AdditionalSenseCodeQualifier;
- UCHAR FieldReplaceableUnitCode;
- UCHAR SenseKeySpecific[3];
-} SENSE_DATA, *PSENSE_DATA;
-
-
-/* Default request sense buffer size */
-
-#define SENSE_BUFFER_SIZE 18
-
-/* Sense codes */
-
-#define SCSI_SENSE_NO_SENSE 0x00
-#define SCSI_SENSE_RECOVERED_ERROR 0x01
-#define SCSI_SENSE_NOT_READY 0x02
-#define SCSI_SENSE_MEDIUM_ERROR 0x03
-#define SCSI_SENSE_HARDWARE_ERROR 0x04
-#define SCSI_SENSE_ILLEGAL_REQUEST 0x05
-#define SCSI_SENSE_UNIT_ATTENTION 0x06
-#define SCSI_SENSE_DATA_PROTECT 0x07
-#define SCSI_SENSE_BLANK_CHECK 0x08
-#define SCSI_SENSE_UNIQUE 0x09
-#define SCSI_SENSE_COPY_ABORTED 0x0A
-#define SCSI_SENSE_ABORTED_COMMAND 0x0B
-#define SCSI_SENSE_EQUAL 0x0C
-#define SCSI_SENSE_VOL_OVERFLOW 0x0D
-#define SCSI_SENSE_MISCOMPARE 0x0E
-#define SCSI_SENSE_RESERVED 0x0F
-
-/* Additional tape bit */
-
-#define SCSI_ILLEGAL_LENGTH 0x20
-#define SCSI_EOM 0x40
-#define SCSI_FILE_MARK 0x80
-
-/* Additional Sense codes */
-
-#define SCSI_ADSENSE_NO_SENSE 0x00
-#define SCSI_ADSENSE_LUN_NOT_READY 0x04
-#define SCSI_ADSENSE_ILLEGAL_COMMAND 0x20
-#define SCSI_ADSENSE_ILLEGAL_BLOCK 0x21
-#define SCSI_ADSENSE_INVALID_LUN 0x25
-#define SCSI_ADSENSE_INVALID_CDB 0x24
-#define SCSI_ADSENSE_MUSIC_AREA 0xA0
-#define SCSI_ADSENSE_DATA_AREA 0xA1
-#define SCSI_ADSENSE_VOLUME_OVERFLOW 0xA7
-
-#define SCSI_ADSENSE_NO_MEDIA_IN_DEVICE 0x3a
-#define SCSI_ADWRITE_PROTECT 0x27
-#define SCSI_ADSENSE_MEDIUM_CHANGED 0x28
-#define SCSI_ADSENSE_BUS_RESET 0x29
-#define SCSI_ADSENSE_TRACK_ERROR 0x14
-#define SCSI_ADSENSE_SEEK_ERROR 0x15
-#define SCSI_ADSENSE_REC_DATA_NOECC 0x17
-#define SCSI_ADSENSE_REC_DATA_ECC 0x18
-
-/* Additional sense code qualifier */
-
-#define SCSI_SENSEQ_FORMAT_IN_PROGRESS 0x04
-#define SCSI_SENSEQ_INIT_COMMAND_REQUIRED 0x02
-#define SCSI_SENSEQ_MANUAL_INTERVENTION_REQUIRED 0x03
-#define SCSI_SENSEQ_BECOMING_READY 0x01
-#define SCSI_SENSEQ_FILEMARK_DETECTED 0x01
-#define SCSI_SENSEQ_SETMARK_DETECTED 0x03
-#define SCSI_SENSEQ_END_OF_MEDIA_DETECTED 0x02
-#define SCSI_SENSEQ_BEGINNING_OF_MEDIA_DETECTED 0x04
-
-/* SCSI IO Device Control Codes */
-
-#define FILE_DEVICE_SCSI 0x0000001b
-
-#define IOCTL_SCSI_EXECUTE_IN ((FILE_DEVICE_SCSI << 16) + 0x0011)
-#define IOCTL_SCSI_EXECUTE_OUT ((FILE_DEVICE_SCSI << 16) + 0x0012)
-#define IOCTL_SCSI_EXECUTE_NONE ((FILE_DEVICE_SCSI << 16) + 0x0013)
-
-/* SMART support in atapi */
-
-#define IOCTL_SCSI_MINIPORT_SMART_VERSION ((FILE_DEVICE_SCSI << 16) + 0x0500)
-#define IOCTL_SCSI_MINIPORT_IDENTIFY ((FILE_DEVICE_SCSI << 16) + 0x0501)
-#define IOCTL_SCSI_MINIPORT_READ_SMART_ATTRIBS ((FILE_DEVICE_SCSI << 16) + 0x0502)
-#define IOCTL_SCSI_MINIPORT_READ_SMART_THRESHOLDS ((FILE_DEVICE_SCSI << 16) + 0x0503)
-#define IOCTL_SCSI_MINIPORT_ENABLE_SMART ((FILE_DEVICE_SCSI << 16) + 0x0504)
-#define IOCTL_SCSI_MINIPORT_DISABLE_SMART ((FILE_DEVICE_SCSI << 16) + 0x0505)
-#define IOCTL_SCSI_MINIPORT_RETURN_STATUS ((FILE_DEVICE_SCSI << 16) + 0x0506)
-#define IOCTL_SCSI_MINIPORT_ENABLE_DISABLE_AUTOSAVE ((FILE_DEVICE_SCSI << 16) + 0x0507)
[truncated at 1000 lines; 1126 more skipped]