• About This Book
    • Summary of Changes
      • How This Book is Organized
    • Assistance
  • Introduction to DASD, SCSI, and CD-ROM Programming Interfaces
    • Device Managers
    • Adapter Device Drivers
    • Filter Device Drivers
  • Installation of OS/2, DASD, SCSI, and CD-ROM Device Drivers
    • Using the BASEDEV Keyword
    • OS/2 System Installation
      • OEM Adapter Device Driver Installation
      • Presence-Check Function
      • Device Driver Profiles
      • Processing Presence-Check Functions and DDP Files
  • Adapter Device Driver Development Considerations
    • Loading and Initialization
    • Operation
    • Command-Line Parameters
  • DASD, SCSI, and CD-ROM Device Manager Interface Specification
    • Direct Call Command Interface
    • IORB Control Blocks
      • IORB General Format
    • IORB CommandCode Format
      • IOCC Configuration
      • DEVICETABLE Structure Overview
      • IOCC_UNIT_CONTROL
      • IOCC_GEOMETRY
      • IOCC_EXECUTE_IO
      • IOCC_FORMAT
      • IOCC_UNIT_STATUS
      • IOCC_DEVICE_CONTROL
      • IOCC_ADAPTER_PASSTHRU
    • Device Helpers (DevHlp)
      • RegisterDeviceClass
      • GetDOSVar
  • Error Handling
    • Summary of Error Codes
    • IORB Status Block
      • SCSI Status Block Format (SCSI_STATUS_BLOCK)
        • Flags
        • AdapterErrorCode
        • TargetStatus
        • ResidualLength
        • AdapterDiagInfo
        • ReqSenseLen
        • SenseData
  • Adapter Device Driver Command-Line Parameters
    • Syntax Conventions
    • Command-Line Parameter Classes
    • SCSI-Specific Parameters
    • Diskette-Specific Parameters
    • ST-506/IDE-Specific Parameters
  • DASD IOCtl Device Driver Test Tool
    • Overview
    • Installation
    • Test-Case Execution
      • DASD IOCtl Test Grammar Function Calls
        • DASD_OPEN
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • DASD_CLOSE
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • LOCK_LOGICAL
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • UNLOCK_LOGICAL
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • QUERY_LOCK
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • GET_LOGICAL_PARAMS
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data (where defined)
        • QMEDIA_SENSE
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • QLOGICAL_MAP
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • SET_LOGICAL_MAP
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • BLOCK_REMOVABLE
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • REDETERMINE_MEDIA
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • READ_LOGICAL
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • WRITE_LOGICAL
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • VERIFY_LOGICAL
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • FORMAT_TRACK
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • OPEN_PHYSICAL
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CLOSE_PHYSICAL
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • LOCK_PHYSICAL
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • UNLOCK_PHYSICAL
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • GET_DISK_COUNT
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • GET_PHYSICAL_PARAMS
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • WRITE_PHYSICAL
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • READ_PHYSICAL
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • VERIFY_PHYSICAL
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • READ_FILE
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • WRITE_FILE
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • SET_DEVICEPARAMS
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CHECKRETURN
          • Required Input Parameter Keywords
          • Logged Data
        • CHECKVALUE
          • Required Input Parameter Keywords
          • Logged Data
    • Description of Test Cases
    • Evaluation of Test Case Results
  • Optical IOCtl Device Driver Test Tool
    • Overview
    • Installation
    • Test-Case Execution
      • Optical IOCtl Test Grammar Function Calls
        • DASD_OPEN
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • DASD_CLOSE
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • LOCK_LOGICAL
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • UNLOCK_LOGICAL
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • QUERY_LOCK
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • GET_LOGICAL_PARAMS
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data (where defined)
        • BLOCK_REMOVABLE
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • REDETERMINE_MEDIA
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • READ_LOGICAL
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • WRITE_LOGICAL
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • VERIFY_LOGICAL
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • FORMAT_TRACK
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • BEGIN_FORMAT
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • LOCK_DOOR
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • UNLOCK_DOOR
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • EJECT_MEDIA
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • QUERY_SUPPORT
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • SCSI_INQUIRY
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • SCSI_MODE_SENSE
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • READ_FILE
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • WRITE_FILE
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • SET_DEVICEPARAMS
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CHECKRETURN
          • Required Input Parameter Keywords
          • Logged Data
        • CHECKVALUE
          • Required Input Parameter Keywords
          • Logged Data
    • Description of Test Cases
    • Evaluation of Test Case Results
  • Using Filter Device Drivers
    • Strategies for Providing Filter Functions
    • Installation and Initialization
    • Editing an Adapter Device Driver Device Table
    • Allocating Permanent Ownership of a Unit
    • IORBs and Filtering
  • Library and Services
  • CD-ROM Device Manager Interface Specification
    • The CD-ROM Device Manager
    • SCSI-2 Emulation Filters
    • SCSI Adapter Device Drivers
      • Non-SCSI CD-ROM Adapter Device Drivers
    • Non-SCSI CD-ROM Adapter Device Driver Specification
      • Mandatory IORB Command Support
        • IOCC_CONFIGURATION
      • IOCC_UNIT_CONTROL
      • IOCC_GEOMETRY
      • IOCC_EXECUTE_IO
      • IOCC_UNIT_STATUS
      • IOCC_DEVICE_CONTROL
      • IOCC_ADAPTER_PASSTHRU
    • Mandatory SCSI-2 Command Support
      • TEST UNIT READY (00h)
      • REQUEST SENSE (03h)
      • READ (08h) and READ (028h)
      • SEEK (0Bh) and Seek (2Bh)
      • INQUIRY (12h)
      • MODE SELECT (15h)
        • Mode Select Parameter List
        • Block Length Support
        • Audio Control Parameter Page
          • Audio Control Determination
      • MODE SENSE Command (1Ah)
      • START/STOP UNIT Command (1Bh)
      • PREVENT/ALLOW MEDIUM REMOVAL (1Eh)
      • READ CD-ROM CAPACITY (25h)
      • READ SUB-CHANNEL (42h)
      • READ TOC (43h)
      • READ HEADER (44h)
      • PLAY AUDIO (10) (45h)
      • PLAY AUDIO MSF (47h)
      • PAUSE/RESUME (4Bh)
      • READ DISC INFORMATION (F0h)
        • TYPE = 00b
        • TYPE = 01b
      • Multi-Session Photo CD Support
    • Error Processing
  • CD-ROM Device Driver Test Tool
    • Overview
    • Installation
    • Test-Case Execution
      • DDTT CD-ROM Test Grammar Function Calls
        • CDROM_OPEN
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_CLOSE
          • Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_GETDEVPARAMS
          • Required Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_QUERYDRIVELETTER
          • Required Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_EJECT
          • Required Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_LOCKDOOR
          • Required Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_UNLOCKDOOR
          • Required Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_QUERYAUDIODISKINFO
          • Required Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_QUERYAUDIOSTATUS
          • Required Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_QUERYDRIVERINFO
          • Required Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_QSECTORINFO
          • Required Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_QUERYVOLUMESIZE
          • Required Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_QUERYAUDIOTRACKINFO
          • Required Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_QUERYSTATUS
          • Required Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_QUERYUPC
          • Required Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_QUERYCHANINFO
          • Required Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_QUERYAUDIOCHANINFO
          • Required Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_AUDIOCHANINFO
          • Required Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_RESET
          • Required Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_STOPAUDIO
          • Required Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_RESUMEAUDIO
          • Required Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_PLAYAUDIO
          • Required Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_SEEK
          • Required Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_DRIVELOCATION
          • Required Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_READFILE
          • Required Input Parameter Keywords
          • Optional Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_READ2048
          • Required Input Parameter Keywords
          • Optional Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_READ2352
          • Required Input Parameter Keywords
          • Optional Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_READPRE2352
          • Required Input Parameter Keywords
          • Output Parameter Keywords
          • Logged Data
        • CDROM_CHECKSECTOR
          • Required Input Parameter Keywords
          • Logged Data
        • CDROM_CHECKRETURN
          • Required Input Parameter Keywords
          • Logged Data
        • CDROM_CHECKVALUE
          • Required Input Parameter Keywords
          • Logged Data
    • Description of Test Cases
    • Evaluation of Test Case Results
  • Building an OS/2 Virtual Disk Driver
    • Virtual Disk Driver Code
  • OS2DASD.DMD - Technical Reference
    • Kernel/FileSystem Interfaces
      • Request Packets
      • Extended Disk Interface
      • Generic IOCtls
    • Block Device Management
    • BIOS Parameter Block (BPB) Management
    • Request Packet Management
      • Removable and Non-Removable Media
      • Removable Media
      • Non-Removable (Partitionable) Media
  • Boot Record Architecture
    • Master Boot Record
    • Fixed Disk Technical Information
      • System Initialization
    • Fixed Disk Partition ID Assignments
    • Extended DOS Partition
    • Installing Block Devices in the Extended DOS Partition
    • Creating Block Devices in the Extended DOS Partition
    • Deleting Block Devices in the Extended DOS Partition
    • BPB and Get Device Parameters for Extended Volumes
      • Category 08h Generic IOCtl Commands
      • Category 09h Generic IOCtl Commands
      • Type 6 Partition
        • Layout of Block Devices with a Type 6 Partition Using XENIX
        • Layout of Block Devices with a Type 6 Partition
      • Type 7 Partition
  • Extended Device Driver Interface Specification
    • Disk Device Driver Architecture
      • Standard OS/2 Strategy Routine
      • Extended Strategy Routine
      • Sorting and Priority
      • Request Management
      • Removable Media
      • Devices Not Capable of Scatter/Gather
    • Identifying Extended Device Drivers and Capabilities
      • GET DRIVER CAPABILITIES Command
        • Driver Capabilities Structure (DCS)
        • Volume Characteristics Structure (VCS)
    • Request Lists and Request Control
      • Extended Commands
        • Request Header
        • Write/Read/WriteVerify
        • Scatter/Gather Descriptor
        • READ PREFETCH
      • Request Control Functions
        • DD_SetFSDInfo
        • DD_ChgPriority
        • DD_SetRestPos
        • DD_GetBoundary
  • I/O Request Block - C Definitions
  • OS/2 SCSI Device Driver Interface Specification
    • Introduction
    • Naming Conventions
    • Generic IOCtl Request
      • OS/2 SCSI Services
        • Read Device Parameters
        • Reset/Initialize
        • Enable Adapter Cache
        • Disable Adapter Cache
        • Return Adapter Cache Status
        • Set Device Timeout
        • Read Device Timeout
        • Transfer SCB
        • Allocate Device
        • Deallocate Device
        • Return Peripheral Type Count
        • Send Abort
    • Return Codes
    • Error Recovery Procedure
    • Device-Class Driver Model
      • Overview
      • Initialization Routine
      • Strategy Routine
      • Interrupt Handler
      • DMA Data Structures
    • Subsystem Control Blocks
      • System Interface
        • Device Inquiry
        • Device Inquiry Data Block
        • Format Unit
        • Get Command Complete Status
        • Command Complete Status Block
          • Word 0 - Subsystem Control Block End Status
          • Word 1 - Retry Counts
          • Words 2 and 3 - Residual Byte Count
          • Words 4 and 5 - Scatter/Gather List Element Address
          • Word 6 - Device Dependent Status Length
          • Word 7 - Command and Device Status
          • Word 8 - Command Error Code/Device Error Code
          • Word 9 - Reserved
          • Word A - Cache Information Word
          • Word B - Last SCB Address Processed - Low Word
          • Word C - Last SCB Address Processed - High Word
        • Read Data
        • Read Device Capacity
        • Device Capacity Data Block
        • Read Prefetch
        • Read Verify
        • Reassign Block
        • Reassign Block Defect List
        • Request Sense
        • Sense Data Block
          • Byte 0 Error Class/Error Code
          • Bytes 1 - 3 Logical Block Address
        • Extended Sense Data Block
          • Byte 0 Error Class/Error Code
          • Byte 1 Segment Number
          • Byte 2 Extended Error Bits/Sense Key
        • Send Other SCSI Command (SCSI CDB)
        • Write Data
        • Write with Verify
  • Advanced SCSI Programming Interface (ASPI) OS/2 Specification
    • Introduction to ASPI
    • Accessing ASPI
      • Calling ASPI
      • Accessing ASPI At Initialization Time
      • ASPI and OS/2 2.x
      • Target Allocation With OS/2 2.x
    • SCSI Request Block (SRB)
      • ASPI Command Codes
        • Valid ASPI Command Codes
      • ASPI Status Bytes
        • ASPI Command Code = 0: Host Adapter Inquiry
        • ASPI Command Code = 1: Get Device Type
        • ASPI Command Code = 2: Execute SCSI I/O Command
          • SCSI Command Linking With ASPI
          • ASPI Command Posting
          • ASPI Command Code = 3: Abort SCSI I/O Request
          • ASPI Command Code = 4: Reset SCSI Device
          • ASPI Command Code = 5: Set Host Adapter Parameters
  • Adapter Device Driver Interface Questions and Answers
    • Scatter/Gather Lists
    • Adapter Device Driver Functionality
  • Device Driver Test Tool (DDTT)
    • Using the DDTT
      • Overall Data Flow Diagram
      • Development Environments
        • Test-Case Execution
        • Test-Case Development
        • Ring-3 Device Interface
      • Script Utility Functions
        • @THREAD
        • @NEWALIAS
        • @IMPORT
        • @LOOP
        • @LOG
        • @PAUSE
        • @FLUSH
        • SET
        • LOG
        • RESPONSE
        • INCREMENT
        • DECREMENT
        • ADD
        • SUB
        • COMPARE
        • DUMP
        • Named Data Buffers
      • OS/2 API Cover Functions
      • Stub Utility Functions
        • IString Class
        • Kwd_List Class
        • DdtOStream Class
        • Buffer Class
      • Adding New Grammar Specifications
        • Specifying Comments
        • Stub Function Entry Specification
        • Automatic Expected Value Checking
    • Samples
      • Sample Grammar Specification
      • Sample Test Script
      • Sample Function Stub Source
  • Notices
    • Copyright Notices
    • Disclaimers
    • Trademarks
  • Glossary
    • Introduction
    • Glossary Listing