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