Int 21H [2.0] Function 44H (68) IOCTL (I/O control)

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.