windows-nt/Source/XPSP1/NT/base/mvdm/dos/v86/inc/ioctl.inc
2020-09-26 16:20:57 +08:00

226 lines
6.4 KiB
PHP
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

; %OUT IOCTL.INC...
; THESE ARE ALL THE IMPORTANT STRUCTURES AND EQUATES FOR IOCTL
;==============================================================================
;REVISION HISTORY:
;AN000 - New for DOS Version 4.00 - J.K.
;AC000 - Changed for DOS Version 4.00 - J.K.
;AN00x - PTM number for DOS Version 4.00 - J.K.
;==============================================================================
;AN001; D241 Provide support of Multi-track Format/Verify 9/23/87 J.K.
;AN002; P1535 Unformatted hard file problem 10/15/87 J.K.
;AN003; D490 IOCTL subfunction 63h,43h,64h,44h conflicts with OS2 2/26/88 J.K.
;==============================================================================
;*** J.K.
;General Guide -
;Category Code:
; 0... .... DOS Defined
; 1... .... User defined
; .xxx xxxx Code
;Function Code:
; 0... .... Return error if unsupported
; 1... .... Ignore if unsupported
; .0.. .... Intercepted by DOS
; .1.. .... Passed to driver
; ..0. .... Sends data/commands to device
; ..1. .... Quries data/info from device
; ...x .... Subfunction
;
; Note that "Sends/queries" data bit is intended only to regularize the
; function set. It plays no critical role; some functions may contain both
; command and query elements. The convention is that such commands are
; defined as "sends data".
;*****************************;*
; BLOCK DRIVERS ;*
;*****************************;*
; IOCTL SUB-FUNCTIONS
IOCTL_GET_DEVICE_INFO EQU 0
IOCTL_SET_DEVICE_INFO EQU 1
IOCTL_READ_HANDLE EQU 2
IOCTL_WRITE_HANDLE EQU 3
IOCTL_READ_DRIVE EQU 4
IOCTL_WRITE_DRIVE EQU 5
IOCTL_GET_INPUT_STATUS EQU 6
IOCTL_GET_OUTPUT_STATUS EQU 7
IOCTL_CHANGEABLE? EQU 8
IOCTL_DeviceLocOrRem? EQU 9
IOCTL_HandleLocOrRem? EQU 0Ah ;10
IOCTL_SHARING_RETRY EQU 0Bh ;11
GENERIC_IOCTL_HANDLE EQU 0Ch ;12
GENERIC_IOCTL EQU 0Dh ;13
IOCTL_GET_DRIVE_MAP EQU 0Eh ;14
IOCTL_SET_DRIVE_MAP EQU 0Fh ;15
IOCTL_QUERY_HANDLE EQU 10h ;16
IOCTL_QUERY_BLOCK EQU 11h ;17
; GENERIC IOCTL CATEGORY CODES
IOC_OTHER EQU 0 ; Other device control J.K. 4/29/86
IOC_SE EQU 1 ; SERIAL DEVICE CONTROL
IOC_TC EQU 2 ; TERMINAL CONTROL
IOC_SC EQU 3 ; SCREEN CONTROL
IOC_KC EQU 4 ; KEYBOARD CONTROL
IOC_PC EQU 5 ; PRINTER CONTROL
IOC_DC EQU 8 ; DISK CONTROL (SAME AS RAWIO)
; GENERIC IOCTL SUB-FUNCTIONS
RAWIO EQU 8
; RAWIO SUB-FUNCTIONS
GET_DEVICE_PARAMETERS EQU 60H
SET_DEVICE_PARAMETERS EQU 40H
READ_TRACK EQU 61H
WRITE_TRACK EQU 41H
VERIFY_TRACK EQU 62H
FORMAT_TRACK EQU 42H
GET_MEDIA_ID EQU 66h ;AN000;AN003;changed from 63h
SET_MEDIA_ID EQU 46h ;AN000;AN003;changed from 43h
GET_ACCESS_FLAG EQU 67h ;AN002;AN003;Unpublished function.Changed from 64h
SET_ACCESS_FLAG EQU 47h ;AN002;AN003;Unpublished function.Changed from 44h
SENSE_MEDIA_TYPE EQU 68H ;Added for 5.00
; SPECIAL FUNCTION FOR GET DEVICE PARAMETERS
BUILD_DEVICE_BPB EQU 000000001B
; SPECIAL FUNCTIONS FOR SET DEVICE PARAMETERS
INSTALL_FAKE_BPB EQU 000000001B
ONLY_SET_TRACKLAYOUT EQU 000000010B
TRACKLAYOUT_IS_GOOD EQU 000000100B
; SPECIAL FUNCTION FOR FORMAT TRACK
STATUS_FOR_FORMAT EQU 000000001B
DO_FAST_FORMAT equ 000000010B ;AN001;
; CODES RETURNED FROM FORMAT STATUS CALL
FORMAT_NO_ROM_SUPPORT EQU 000000001B
FORMAT_COMB_NOT_SUPPORTED EQU 000000010B
; DEVICETYPE VALUES
MAX_SECTORS_IN_TRACK EQU 63 ; MAXIMUM SECTORS ON A DISK.(Was 40 in DOS 3.2)
DEV_5INCH EQU 0
DEV_5INCH96TPI EQU 1
DEV_3INCH720KB EQU 2
DEV_8INCHSS EQU 3
DEV_8INCHDS EQU 4
DEV_HARDDISK EQU 5
DEV_OTHER EQU 7
DEV_3INCH1440KB EQU 7
DEV_3INCH2880KB EQU 9
MAX_DEV_TYPE EQU 9 ; MAXIMUM DEVICE TYPE THAT WE
; CURRENTLY SUPPORT.
A_SECTORTABLE STRUC
ST_SECTORNUMBER DW ?
ST_SECTORSIZE DW ?
A_SECTORTABLE ENDS
ifndef NEC_98
;A_DEVICEPARAMETERS STRUC
;DP_SPECIALFUNCTIONS DB ?
;DP_DEVICETYPE DB ?
;DP_DEVICEATTRIBUTES DW ?
;DP_CYLINDERS DW ?
;DP_MEDIATYPE DB ?
;DP_BPB DB SIZE A_BPB DUP (?)
;DP_TRACKTABLEENTRIES DW ?
;DP_SECTORTABLE DB MAX_SECTORS_IN_TRACK * SIZE A_SECTORTABLE DUP (?)
;A_DEVICEPARAMETERS ENDS
else ;NEC_98
A_DEVICEPARAMETERS STRUC
DP_SPECIALFUNCTIONS DB ?
DP_DEVICETYPE DB ?
DP_DEVICEATTRIBUTES DW ?
DP_CYLINDERS DW ?
DP_MEDIATYPE DB ?
DP_BPB DB SIZE A_BPB DUP (?)
DP_TRACKTABLEENTRIES DW ?
DP_SECTORTABLE DB MAX_SECTORS_IN_TRACK * SIZE A_SECTORTABLE DUP (?)
A_DEVICEPARAMETERS ENDS
endif ;NEC_98
;A_TRACKREADWRITEPACKET STRUC
;TRWP_SPECIALFUNCTIONS DB ?
;TRWP_HEAD DW ?
;TRWP_CYLINDER DW ?
;TRWP_FIRSTSECTOR DW ?
;TRWP_SECTORSTOREADWRITE DW ?
;TRWP_TRANSFERADDRESS DD ?
;A_TRACKREADWRITEPACKET ENDS
;AN001; - FP_TRACKCOUNT is only meaningful when FP_SPECIALFUNCTIONS bit 1 = 1.
A_FORMATPACKET STRUC
FP_SPECIALFUNCTIONS DB ?
FP_HEAD DW ?
FP_CYLINDER DW ?
FP_TRACKCOUNT DW 1
A_FORMATPACKET ENDS
A_VERIFYPACKET STRUC
VP_SPECIALFUNCTIONS DB ?
VP_HEAD DW ?
VP_CYLINDER DW ?
A_VERIFYPACKET ENDS
A_MEDIA_ID_INFO STRUC
MI_LEVEL DW 0 ;J.K. 87 Info. level
MI_SERIAL DD ? ;J.K. 87 Serial #
MI_LABEL DB 11 DUP (' ') ;J.K. 87 volume label
MI_SYSTEM DB 8 DUP (' ') ;J.K. 87 File system type
A_MEDIA_ID_INFO ENDS
A_DISKACCESS_CONTROL STRUC ;AN002; Unpublished function. Only for Hard file.
DAC_SPECIALFUNCTIONS DB 0 ;AN002; Always 0
DAC_ACCESS_FLAG DB 0 ;AN002; Non Zero - allow disk I/O to unformatted hard file
A_DISKACCESS_CONTROL ENDS ;AN002; 0 - Disallow disk I/O to unformatted hard file
A_MEDIA_SENSE STRUC ; Media sense structure added 5.00
MS_ISDEFAULT DB ? ; If 1 type returned is drv default
MS_DEVICETYPE DB ? ; Drive type
MS_RESERVED1 DB ? ; RESERVED
MS_RESERVED2 DB ? ; RESERVED
A_MEDIA_SENSE ENDS
;********************************;*
; CHARACTER DEVICES (PRINTERS) ;*
;********************************;*
;RAWIO SUB-FUNCTIONS
GET_RETRY_COUNT EQU 65H
SET_RETRY_COUNT EQU 45H
A_RETRYCOUNT STRUC
RC_COUNT DW ?
A_RETRYCOUNT ENDS
;********************************;* ;J.K. 4/29/86
; CHARACTER DEVICES (SCREEN) ;*
;********************************;* ;J.K. 4/29/86
;
;SC_MODE_INFO struc
;SC_INFO_LENGTH DW 9
;SC_MODE DB 0
;SC_COLORS DW 0
;SC_WIDTH DW 0
;SC_LENGTH DW 0
;SC_MODE_INFO ends
;
;SC_INFO_PACKET_LENGTH EQU 9 ;LENGTH OF THE INFO PACKET.
;SUBFUNCTIONS FOR CON$GENIOCTL
;GET_SC_MODE EQU 60h
;SET_SC_MODE EQU 40h
;The following subfunctions are reserved for installable CODE PAGE switch
;console devices. - J.K. 4/29/86
;Get_active_codepage equ 6Ah
;Invoke_active_codepage equ 4Ah
;Start_designate_codepage equ 4Ch
;End_designate_codepage equ 4Dh
;Get_list_of_designated_codepage equ 6Bh
;J.K. 4/29/86 *** End of Con$genioctl equates & structures