Jump to content

SMPProgAdd - Generic IOCtl Commands: Difference between revisions

From EDM2
Created page with "{{IBM-Reprint}} {{SMPProgAdd}} = Generic IOCtl Commands = OS/2 device drivers are used to access the I/O hardware. The '''IOCtl''' functions provide a method for an application, or subsystem, to send device-specific control commands to a physical device driver. These IOCtls are subfunctions that are issued through the DosDevIOCtl API function request. The DosDevIOCtl function request can be used only by OS/2 applications; the INT 21h IOCtl request can be used only by D..."
 
 
(4 intermediate revisions by the same user not shown)
Line 29: Line 29:


The following is a summary of Category 08h IOCtl Commands:
The following is a summary of Category 08h IOCtl Commands:
 
{|class="wikitable"
{| class="wikitable"
!Function||Description||Name
! Function !! Description
|-
|00h||Lock Drive||[[DSK_LOCKDRIVE]]
|-
|01h||Unlock Drive||[[DSK_UNLOCKDRIVE]]
|-
|02h||Redetermine Media||[[DSK_REDETERMINEMEDIA]]
|-
|03h||Set Logical Map||[[DSK_SETLOGICALMAP]]
|-
|04h||Begin Format||[[DSK_BEGINFORMAT]]
|-
|20h||Block Removable||[[DSK_BLOCKREMOVABLE]]
|-
|-
| 00h || Lock Drive
|21h||Query Logical Map||[[DSK_GETLOGICALMAP]]
|-
|-
| 01h || Unlock Drive
|22h||Reserved||
|-
|-
| 02h || Redetermine Media
|40h||Removable Media Control||[[DSK_UNLOCKEJECTMEDIA]]
|-
|-
| 03h || Set Logical Map
|43h||Set Device Parameters||[[DSK_SETDEVICEPARAMS]]
|-
|-
| 04h || Begin Format
|44h||Write Logical Track||[[DSK_WRITETRACK]]
|-
|-
| 20h || Lock Removable
|45h||Format and Verify Track||[[DSK_FORMATVERIFY]]
|-
|-
| 21h || Query Logical Map
|5Dh||Diskette Control||[[DSK_DISKETTECONTROL]]
|-
|-
| 22h || Reserved
|5Eh||Reserved||
|-
|-
| 40h || Removable Media Control
|5Fh||Reserved||
|-
|-
| 43h || Set Device Parameters
|60h||Query Media Sense||[[DSK_QUERYMEDIASENSE]]
|-
|-
| 44h || Write Logical Track
|63h||Query Device Parameters||[[DSK_GETDEVICEPARAMS]]
|-
|-
| 45h || Format and Verify Track
|64h||Read Logical Track||[[DSK_READTRACK]]
|-
|-
| 5Dh || Diskette Control
|65h||Verify Logical Track||[[DSK_VERIFYTRACK]]
|-
|-
| 5Eh || Reserved
|66h||Status||[[DSK_GETLOCKSTATUS]]
|}
 
==Category 09h Physical Disk Control IOCtl Commands==
 
Category 09h is used to access physical partitionable hard disks. The handle used for Category 09h command is returned by the DosPhysicalDisk (Function 2) API function. (See the OS/2 Control Program Programming Reference for more information). This handle is used to tell the system which physical disk is accessed by the IOCtl command.
 
The Physical Disk Control commands relate to the entire partitionable hard disk. Direct track and sector I/O start at the beginning of the physical drive. [[PDSK_GETPHYSDEVICEPARAMS]], describes the entire physical device.
 
The following is a summary of Category 09h IOCtl Commands:
 
{| class="wikitable"
! Function !! Description !! Name
|-
|-
| 5Fh || Reserved
| 00h || Lock Physical Drive || [[PDSK_LOCKPHYSDRIVE]]
|-
|-
| 60h || Query Media Sense
| 01h || Unlock Physical Drive || [[PDSK_UNLOCKPHYSDRIVE]]
|-
|-
| 63h || Query Device Parameters
| 44h || Write Physical Track || [[PDSK_WRITEPHYSTRACK]]
|-
|-
| 64h || Read Logical Track
| 63h || Query Physical Device Parameters || [[PDSK_GETPHYSDEVICEPARAMS]]
|-
|-
| 65h || Verify Logical Track
| 64h || Read Physical Track || [[PDSK_READPHYSTRACK]]
|-
|-
| 66h || Status
| 65h || Verify Physical Track || [[PDSK_VERIFYPHYSTRACK]]
|}
|}

Latest revision as of 04:35, 19 May 2025

Reprint Courtesy of International Business Machines Corporation, © International Business Machines Corporation

SMP Programming Addendum
  1. How to Use the SMP Programming Addendum
  2. Introduction to OS/2 Warp Server Version 4 Advanced
  3. Platform Specific Drivers (PSDs)
  4. High Memory Support
  5. Raw File System
  6. Processor Management and Performance Functions
  7. Application Considerations
  8. Device Drivers In OS/2 Warp Server for SMP
  9. New Device Helper (DevHlp) Routines
  10. Kernel Debugger
  11. The ICAT Debugger
  12. Software Trace Facility (STRACE)
  13. View and Set Program Type For Executable File (MARKEXE)
  14. Data Types
  15. Errors
  16. Generic IOCtl Commands
  17. Sample Source Code for a PSD
  18. Comments, Please!
  19. Glossary
  20. Notices

Generic IOCtl Commands

OS/2 device drivers are used to access the I/O hardware. The IOCtl functions provide a method for an application, or subsystem, to send device-specific control commands to a physical device driver. These IOCtls are subfunctions that are issued through the DosDevIOCtl API function request. The DosDevIOCtl function request can be used only by OS/2 applications; the INT 21h IOCtl request can be used only by DOS applications.

Category and Function Fields

The category and function fields are as follows. Each code is contained in a byte:

Category Codes

  • 0xxx xxxx: OS/2-defined
  • 1xxx xxxx: User-defined
  • _xxx xxxx: Code

Function Codes

  • 0xxx xxxx: Return error, if unsupported
  • 1xxx xxxx: Ignore, if unsupported
  • x0xx xxxx: Intercepted by the OS/2 operating system
  • x1xx xxxx: Passed to driver
  • xx0x xxxx: Sends data and commands to device
  • xx1x xxxx: Queries data and information from device
  • ___x xxxx: Subfunction

Note: The send/query data bit is intended only to standardize the function set; it plays no critical role. Some functions can contain both command and query elements. Such commands are defined as sends data.

Category 08h Logical Disk Control IOCtl Commands

The following is a summary of Category 08h IOCtl Commands:

Function Description Name
00h Lock Drive DSK_LOCKDRIVE
01h Unlock Drive DSK_UNLOCKDRIVE
02h Redetermine Media DSK_REDETERMINEMEDIA
03h Set Logical Map DSK_SETLOGICALMAP
04h Begin Format DSK_BEGINFORMAT
20h Block Removable DSK_BLOCKREMOVABLE
21h Query Logical Map DSK_GETLOGICALMAP
22h Reserved
40h Removable Media Control DSK_UNLOCKEJECTMEDIA
43h Set Device Parameters DSK_SETDEVICEPARAMS
44h Write Logical Track DSK_WRITETRACK
45h Format and Verify Track DSK_FORMATVERIFY
5Dh Diskette Control DSK_DISKETTECONTROL
5Eh Reserved
5Fh Reserved
60h Query Media Sense DSK_QUERYMEDIASENSE
63h Query Device Parameters DSK_GETDEVICEPARAMS
64h Read Logical Track DSK_READTRACK
65h Verify Logical Track DSK_VERIFYTRACK
66h Status DSK_GETLOCKSTATUS

Category 09h Physical Disk Control IOCtl Commands

Category 09h is used to access physical partitionable hard disks. The handle used for Category 09h command is returned by the DosPhysicalDisk (Function 2) API function. (See the OS/2 Control Program Programming Reference for more information). This handle is used to tell the system which physical disk is accessed by the IOCtl command.

The Physical Disk Control commands relate to the entire partitionable hard disk. Direct track and sector I/O start at the beginning of the physical drive. PDSK_GETPHYSDEVICEPARAMS, describes the entire physical device.

The following is a summary of Category 09h IOCtl Commands:

Function Description Name
00h Lock Physical Drive PDSK_LOCKPHYSDRIVE
01h Unlock Physical Drive PDSK_UNLOCKPHYSDRIVE
44h Write Physical Track PDSK_WRITEPHYSTRACK
63h Query Physical Device Parameters PDSK_GETPHYSDEVICEPARAMS
64h Read Physical Track PDSK_READPHYSTRACK
65h Verify Physical Track PDSK_VERIFYPHYSTRACK