SMPProgAdd - Generic IOCtl Commands
Reprint Courtesy of International Business Machines Corporation, © International Business Machines Corporation
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 |