Device Request 0cH: IOCTL Output
◄Blk► ◄Chr► ◄IRW►
This tells driver to accept and act upon IOCTL commands or data.
Offset Size Contents
▀▀▀▀▀▀ ▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
+0 1 bLen 14H (length of this request packet)
+1 1 bUnitNo (not used)
+2 1 bCmd 0cH (command code)
+3 2 rStatus OUTPUT: Device Status Word must fill before exit
+5H 8 res (reserved)
+0dH 1 bRes2 (not used)
+0eH 4 pfBuffer INPUT: buffer address
+12H 2 wSize INPUT: size of IOCTL data
OUTPUT: number of bytes actually processed
20 size of this structure
rStatus On exit, the driver must place a DevStatusWord here. Always
set the Done bit (bit 8). On an error, set the Done bit and
the Error bit (bit 15) and put a Device Error Code in the low
pfBuffer on entry, this is the address of the IOCTL data. It is the
address passed in DS:DX from DOS fn 4403H or 4405H.
wSize on entry, this is the size of the IOCTL data being passed from
DOS. It is the value passed in CX from DOS fn 4403H or 4405H.
On return, if you were unable to process all of the data, you
should indicate an error and set this to amount of data that
was actually processed.
Notes: ■ This is the device driver "catch point" for:
DOS Fn 4403H (IOCTL send control data to character device) and
DOS Fn 4405H (IOCTL send control data to block device)
■ The layout of the data at pfBuffer is device-specific.
■ Only drivers capable of IOCTL-processing need support this
request (see Device Attribute).
See Also: Device Requests
Installable Device Drivers