Provides a direct path of communication between an application program and a device driver. Allows a program to obtain hardware-dependent information and to request operations that are not supported by other MS-DOS function calls.
The IOCTL subfunctions and the MS-DOS versions in which they first became available are:
Subfunction Name MS-DOS version
00H Get Device Information 2.0
01H Set Device Information 2.0
02H Receive Control Data from Character 2.0
Device Driver
03H Send Control Data to Character Device 2.0
Driver
04H Receive Control Data from Block Device 2.0
Driver
05H Send Control Data to Block Device Driver 2.0
06H Check Input Status 2.0
07H Check Output Status 2.0
08H Check If Block Device Is Removable 3.0
09H Check If Block Device Is Remote 3.1
0AH (10) Check If Handle Is Remote 3.1
0BH (11) Change Sharing Retry Count 3.1
0CH (12) Generic I/O Control for Character Devices
CL = 45H: Set Iteration Count 3.2
CL = 4AH: Select Code Page 3.3
CL = 4CH: Start Code Page Preparation 3.3
CL = 4DH: End Code Page Preparation 3.3
CL = 5FH: Set Display Information 4.0
CL = 65H: Get Iteration Count 3.2
CL = 6AH: Query Selected Code Page 3.3
CL = 6BH: Query Prepare List 3.3
CL = 7FH: Get Display Information 4.0
0DH (13) Generic I/O Control for Block Devices
CL = 40H: Set Device Parameters 3.2
CL = 41H: Write Track 3.2
CL = 42H: Format and Verify Track 3.2
CL = 47H: Set Access Flag 4.0
CL = 60H: Get Device Parameters 3.2
CL = 61H: Read Track 3.2
CL = 62H: Verify Track 3.2
CL = 67H: Get Access Flag 4.0
0EH (14) Get Logical Drive Map 3.2
0FH (15) Set Logical Drive Map 3.2
Only IOCTL Subfunctions 00H, 06H, and 07H may be used for handles associated with files. Subfunctions 00H—08H are not supported on network devices.