mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
520 lines
12 KiB
520 lines
12 KiB
/**************************************************************************\
|
|
*
|
|
* Module Name: BSEDEV.H
|
|
*
|
|
* OS/2 Structures and constants for use with DosDevIOCtl
|
|
*
|
|
* Copyright (c) 1989-1990, Microsoft Corporation. All rights reserved.
|
|
*
|
|
\**************************************************************************/
|
|
|
|
#define BSEDEV_INCLUDED
|
|
|
|
/* Input and Output Control Categories */
|
|
|
|
#define IOCTL_ASYNC 0x0001
|
|
#define IOCTL_SCR_AND_PTRDRAW 0x0003
|
|
#define IOCTL_KEYBOARD 0x0004
|
|
#define IOCTL_PRINTER 0x0005
|
|
#define IOCTL_LIGHTPEN 0x0006
|
|
#define IOCTL_POINTINGDEVICE 0x0007
|
|
#define IOCTL_DISK 0x0008
|
|
#define IOCTL_PHYSICALDISK 0x0009
|
|
#define IOCTL_MONITOR 0x000A
|
|
#define IOCTL_GENERAL 0x000B
|
|
|
|
/* Serial-Device Control */
|
|
|
|
#define ASYNC_SETBAUDRATE 0x0041
|
|
#define ASYNC_SETLINECTRL 0x0042
|
|
#define ASYNC_TRANSMITIMM 0x0044
|
|
#define ASYNC_SETBREAKOFF 0x0045
|
|
#define ASYNC_SETMODEMCTRL 0x0046
|
|
#define ASYNC_SETBREAKON 0x004B
|
|
#define ASYNC_STOPTRANSMIT 0x0047
|
|
#define ASYNC_STARTTRANSMIT 0x0048
|
|
#define ASYNC_SETDCBINFO 0x0053
|
|
#define ASYNC_GETBAUDRATE 0x0061
|
|
#define ASYNC_GETLINECTRL 0x0062
|
|
#define ASYNC_GETCOMMSTATUS 0x0064
|
|
#define ASYNC_GETLINESTATUS 0x0065
|
|
#define ASYNC_GETMODEMOUTPUT 0x0066
|
|
#define ASYNC_GETMODEMINPUT 0x0067
|
|
#define ASYNC_GETINQUECOUNT 0x0068
|
|
#define ASYNC_GETOUTQUECOUNT 0x0069
|
|
#define ASYNC_GETCOMMERROR 0x006D
|
|
#define ASYNC_GETCOMMEVENT 0x0072
|
|
#define ASYNC_GETDCBINFO 0x0073
|
|
|
|
/* Screen/Pointer-Draw Control */
|
|
|
|
#define SCR_ALLOCLDT 0x0070
|
|
#define SCR_DEALLOCLDT 0x0071
|
|
#define PTR_GETPTRDRAWADDRESS 0x0072
|
|
#define SCR_ALLOCLDTOFF 0x0075
|
|
|
|
/* Keyboard Control */
|
|
|
|
#define KBD_SETTRANSTABLE 0x0050
|
|
#define KBD_SETINPUTMODE 0x0051
|
|
#define KBD_SETINTERIMFLAG 0x0052
|
|
#define KBD_SETSHIFTSTATE 0x0053
|
|
#define KBD_SETTYPAMATICRATE 0x0054
|
|
#define KBD_SETFGNDSCREENGRP 0x0055
|
|
#define KBD_SETSESMGRHOTKEY 0x0056
|
|
#define KBD_SETFOCUS 0x0057
|
|
#define KBD_SETKCB 0x0058
|
|
#define KBD_SETNLS 0x005C
|
|
#define KBD_CREATE 0x005D
|
|
#define KBD_DESTROY 0x005E
|
|
#define KBD_GETINPUTMODE 0x0071
|
|
#define KBD_GETINTERIMFLAG 0x0072
|
|
#define KBD_GETSHIFTSTATE 0x0073
|
|
#define KBD_READCHAR 0x0074
|
|
#define KBD_PEEKCHAR 0x0075
|
|
#define KBD_GETSESMGRHOTKEY 0x0076
|
|
#define KBD_GETKEYBDTYPE 0x0077
|
|
#define KBD_GETCODEPAGEID 0x0078
|
|
#define KBD_XLATESCAN 0x0079
|
|
|
|
/* Printer Control */
|
|
|
|
#define PRT_SETFRAMECTL 0x0042
|
|
#define PRT_SETINFINITERETRY 0x0044
|
|
#define PRT_INITPRINTER 0x0046
|
|
#define PRT_ACTIVATEFONT 0x0048
|
|
#define PRT_GETFRAMECTL 0x0062
|
|
#define PRT_GETINFINITERETRY 0x0064
|
|
#define PRT_GETPRINTERSTATUS 0x0066
|
|
#define PRT_QUERYACTIVEFONT 0x0069
|
|
#define PRT_VERIFYFONT 0x006A
|
|
|
|
/* Pointing-Device (Mouse) Control */
|
|
|
|
#define MOU_ALLOWPTRDRAW 0x0050
|
|
#define MOU_UPDATEDISPLAYMODE 0x0051
|
|
#define MOU_SCREENSWITCH 0x0052
|
|
#define MOU_SETSCALEFACTORS 0x0053
|
|
#define MOU_SETEVENTMASK 0x0054
|
|
#define MOU_SETHOTKEYBUTTON 0x0055
|
|
#define MOU_SETPTRSHAPE 0x0056
|
|
#define MOU_DRAWPTR 0x0057
|
|
#define MOU_REMOVEPTR 0x0058
|
|
#define MOU_SETPTRPOS 0x0059
|
|
#define MOU_SETPROTDRAWADDRESS 0x005A
|
|
#define MOU_SETREALDRAWADDRESS 0x005B
|
|
#define MOU_SETMOUSTATUS 0x005C
|
|
#define MOU_DISPLAYMODECHANGE 0x005D
|
|
#define MOU_GETBUTTONCOUNT 0x0060
|
|
#define MOU_GETMICKEYCOUNT 0x0061
|
|
#define MOU_GETMOUSTATUS 0x0062
|
|
#define MOU_READEVENTQUE 0x0063
|
|
#define MOU_GETQUESTATUS 0x0064
|
|
#define MOU_GETEVENTMASK 0x0065
|
|
#define MOU_GETSCALEFACTORS 0x0066
|
|
#define MOU_GETPTRPOS 0x0067
|
|
#define MOU_GETPTRSHAPE 0x0068
|
|
#define MOU_GETHOTKEYBUTTON 0x0069
|
|
#define MOU_VER 0x006A
|
|
|
|
/* Disk/Diskette Control */
|
|
|
|
#define DSK_LOCKDRIVE 0x0000
|
|
#define DSK_UNLOCKDRIVE 0x0001
|
|
#define DSK_REDETERMINEMEDIA 0x0002
|
|
#define DSK_SETLOGICALMAP 0x0003
|
|
#define DSK_BLOCKREMOVABLE 0x0020
|
|
#define DSK_GETLOGICALMAP 0x0021
|
|
#define DSK_SETDEVICEPARAMS 0x0043
|
|
#define DSK_WRITETRACK 0x0044
|
|
#define DSK_FORMATVERIFY 0x0045
|
|
#define DSK_GETDEVICEPARAMS 0x0063
|
|
#define DSK_READTRACK 0x0064
|
|
#define DSK_VERIFYTRACK 0x0065
|
|
|
|
/* Physical-Disk Control */
|
|
|
|
#define PDSK_LOCKPHYSDRIVE 0x0000
|
|
#define PDSK_UNLOCKPHYSDRIVE 0x0001
|
|
#define PDSK_WRITEPHYSTRACK 0x0044
|
|
#define PDSK_GETPHYSDEVICEPARAMS 0x0063
|
|
#define PDSK_READPHYSTRACK 0x0064
|
|
#define PDSK_VERIFYPHYSTRACK 0x0065
|
|
|
|
/* Character-Monitor Control */
|
|
|
|
#define MON_REGISTERMONITOR 0x0040
|
|
|
|
/* General Device Control */
|
|
|
|
#define DEV_FLUSHINPUT 0x0001
|
|
#define DEV_FLUSHOUTPUT 0x0002
|
|
#define DEV_QUERYMONSUPPORT 0x0060
|
|
|
|
|
|
/* ASYNC_GETCOMMERROR, ASYNC_SETBREAKOFF, ASYNC_SETBREAKON,
|
|
* ASYNC_SETMODEMCTRL
|
|
*/
|
|
|
|
#define RX_QUE_OVERRUN 0x0001
|
|
#define RX_HARDWARE_OVERRUN 0x0002
|
|
#define PARITY_ERROR 0x0004
|
|
#define FRAMING_ERROR 0x0008
|
|
|
|
/* ASYNC_GETCOMMEVENT */
|
|
|
|
#define CHAR_RECEIVED 0x0001
|
|
#define LAST_CHAR_SENT 0x0004
|
|
#define CTS_CHANGED 0x0008
|
|
#define DSR_CHANGED 0x0010
|
|
#define DCD_CHANGED 0x0020
|
|
#define BREAK_DETECTED 0x0040
|
|
#define ERROR_OCCURRED 0x0080
|
|
#define RI_DETECTED 0x0100
|
|
|
|
/* ASYNC_GETCOMMSTATUS */
|
|
|
|
#define TX_WAITING_FOR_CTS 0x0001
|
|
#define TX_WAITING_FOR_DSR 0x0002
|
|
#define TX_WAITING_FOR_DCD 0x0004
|
|
#define TX_WAITING_FOR_XON 0x0008
|
|
#define TX_WAITING_TO_SEND_XON 0x0010
|
|
#define TX_WAITING_WHILE_BREAK_ON 0x0020
|
|
#define TX_WAITING_TO_SEND_IMM 0x0040
|
|
#define RX_WAITING_FOR_DSR 0x0080
|
|
|
|
/* ASYNC_GETLINESTATUS */
|
|
|
|
#define WRITE_REQUEST_QUEUED 0x0001
|
|
#define DATA_IN_TX_QUE 0x0002
|
|
#define HARDWARE_TRANSMITTING 0x0004
|
|
#define CHAR_READY_TO_SEND_IMM 0x0008
|
|
#define WAITING_TO_SEND_XON 0x0010
|
|
#define WAITING_TO_SEND_XOFF 0x0020
|
|
|
|
/* ASYNC_GETMODEMINPUT */
|
|
|
|
#define CTS_ON 0x10
|
|
#define DSR_ON 0x20
|
|
#define RI_ON 0x40
|
|
#define DCD_ON 0x80
|
|
|
|
/* DSK_SETDEVICEPARAMS */
|
|
|
|
#define BUILD_BPB_FROM_MEDIUM 0x00
|
|
#define REPLACE_BPB_FOR_DEVICE 0x01
|
|
#define REPLACE_BPB_FOR_MEDIUM 0x02
|
|
|
|
/* KBD_GETINPUTMODE, KBD_PEEKCHAR, KBD_SETINPUTMODE*/
|
|
|
|
#define ASCII_MODE 0x00
|
|
#define BINARY_MODE 0x80
|
|
|
|
/* KBD_GETINTERIMFLAG */
|
|
|
|
#define CONVERSION_REQUEST 0x20
|
|
#define INTERIM_CHAR 0x80
|
|
|
|
/* KBD_GETSESMGRHOTKEY */
|
|
|
|
#define HOTKEY_MAX_COUNT 0x0000
|
|
#define HOTKEY_CURRENT_COUNT 0x0001
|
|
|
|
/* KBD_PEEKCHAR */
|
|
|
|
#define KBD_DATA_RECEIVED 0x0001
|
|
#define KBD_DATA_BINARY 0x8000
|
|
|
|
/* KBD_READCHAR */
|
|
|
|
#define KBD_READ_WAIT 0x0000
|
|
#define KBD_READ_NOWAIT 0x8000
|
|
|
|
/* KBD_SETINPUTMODE */
|
|
|
|
#define SHIFT_REPORT_MODE 0x01
|
|
|
|
#ifndef INCL_MOU
|
|
|
|
#define MOUSE_MOTION 0x0001
|
|
#define MOUSE_MOTION_WITH_BN1_DOWN 0x0002
|
|
#define MOUSE_BN1_DOWN 0x0004
|
|
#define MOUSE_MOTION_WITH_BN2_DOWN 0x0008
|
|
#define MOUSE_BN2_DOWN 0x0010
|
|
#define MOUSE_MOTION_WITH_BN3_DOWN 0x0020
|
|
#define MOUSE_BN3_DOWN 0x0040
|
|
|
|
#define MHK_BUTTON1 0x0001
|
|
#define MHK_BUTTON2 0x0002
|
|
#define MHK_BUTTON3 0x0004
|
|
|
|
#define MOU_NOWAIT 0x0000
|
|
#define MOU_WAIT 0x0001
|
|
|
|
#endif /* #ifndef INCL_MOU */
|
|
|
|
/* MOU_GETHOTKEYBUTTON, MOU_SETHOTKEYBUTTON */
|
|
|
|
#define MHK_NO_HOTKEY 0x0000
|
|
|
|
/* MOU_GETMOUSTATUS */
|
|
|
|
#define MOUSE_QUEUEBUSY 0x0001
|
|
#define MOUSE_BLOCKREAD 0x0002
|
|
#define MOUSE_FLUSH 0x0004
|
|
#define MOUSE_UNSUPPORTED_MODE 0x0008
|
|
#define MOUSE_DISABLED 0x0100
|
|
#define MOUSE_MICKEYS 0x0200
|
|
|
|
/* PRT_GETPRINTERSTATUS */
|
|
|
|
#define PRINTER_TIMEOUT 0x0001
|
|
#define PRINTER_IO_ERROR 0x0008
|
|
#define PRINTER_SELECTED 0x0010
|
|
#define PRINTER_OUT_OF_PAPER 0x0020
|
|
#define PRINTER_ACKNOWLEDGED 0x0040
|
|
#define PRINTER_NOT_BUSY 0x0080
|
|
|
|
/* fbCtlHndShake */
|
|
|
|
#define MODE_DTR_CONTROL 0x01
|
|
#define MODE_DTR_HANDSHAKE 0x02
|
|
#define MODE_CTS_HANDSHAKE 0x08
|
|
#define MODE_DSR_HANDSHAKE 0x10
|
|
#define MODE_DCD_HANDSHAKE 0x20
|
|
#define MODE_DSR_SENSITIVITY 0x40
|
|
|
|
/* fbFlowReplace */
|
|
|
|
#define MODE_AUTO_TRANSMIT 0x01
|
|
#define MODE_AUTO_RECEIVE 0x02
|
|
#define MODE_ERROR_CHAR 0x04
|
|
#define MODE_NULL_STRIPPING 0x08
|
|
#define MODE_BREAK_CHAR 0x10
|
|
#define MODE_RTS_CONTROL 0x40
|
|
#define MODE_RTS_HANDSHAKE 0x80
|
|
#define MODE_TRANSMIT_TOGGLE 0xC0
|
|
|
|
/* fbTimeout */
|
|
|
|
#define MODE_NO_WRITE_TIMEOUT 0x01
|
|
#define MODE_READ_TIMEOUT 0x02
|
|
#define MODE_WAIT_READ_TIMEOUT 0x04
|
|
#define MODE_NOWAIT_READ_TIMEOUT 0x06
|
|
|
|
typedef struct _DCBINFO { /* dcbinf */
|
|
USHORT usWriteTimeout;
|
|
USHORT usReadTimeout;
|
|
BYTE fbCtlHndShake;
|
|
BYTE fbFlowReplace;
|
|
BYTE fbTimeout;
|
|
BYTE bErrorReplacementChar;
|
|
BYTE bBreakReplacementChar;
|
|
BYTE bXONChar;
|
|
BYTE bXOFFChar;
|
|
} DCBINFO;
|
|
typedef DCBINFO FAR *PDCBINFO;
|
|
|
|
typedef struct _TRACKLAYOUT { /* trckl */
|
|
BYTE bCommand;
|
|
USHORT usHead;
|
|
USHORT usCylinder;
|
|
USHORT usFirstSector;
|
|
USHORT cSectors;
|
|
struct {
|
|
USHORT usSectorNumber;
|
|
USHORT usSectorSize;
|
|
} TrackTable[1];
|
|
} TRACKLAYOUT;
|
|
typedef TRACKLAYOUT FAR *PTRACKLAYOUT;
|
|
|
|
#define DEVTYPE_48TPI 0x0000
|
|
#define DEVTYPE_96TPI 0x0001
|
|
#define DEVTYPE_35 0x0002
|
|
#define DEVTYPE_8SD 0x0003
|
|
#define DEVTYPE_8DD 0x0004
|
|
#define DEVTYPE_FIXED 0x0005
|
|
#define DEVTYPE_TAPE 0x0006
|
|
#define DEVTYPE_UNKNOWN 0x0007
|
|
|
|
typedef struct _BIOSPARAMETERBLOCK { /* bspblk */
|
|
USHORT usBytesPerSector;
|
|
BYTE bSectorsPerCluster;
|
|
USHORT usReservedSectors;
|
|
BYTE cFATs;
|
|
USHORT cRootEntries;
|
|
USHORT cSectors;
|
|
BYTE bMedia;
|
|
USHORT usSectorsPerFAT;
|
|
USHORT usSectorsPerTrack;
|
|
USHORT cHeads;
|
|
ULONG cHiddenSectors;
|
|
ULONG cLargeSectors;
|
|
BYTE abReserved[6];
|
|
USHORT cCylinders;
|
|
BYTE bDeviceType;
|
|
USHORT fsDeviceAttr;
|
|
} BIOSPARAMETERBLOCK;
|
|
typedef BIOSPARAMETERBLOCK FAR *PBIOSPARAMETERBLOCK;
|
|
|
|
typedef struct _SCREENGROUP { /* scrgrp */
|
|
USHORT idScreenGrp;
|
|
USHORT fTerminate;
|
|
} SCREENGROUP;
|
|
typedef SCREENGROUP FAR *PSCREENGROUP;
|
|
|
|
typedef struct _FRAME { /* frm */
|
|
BYTE bCharsPerLine;
|
|
BYTE bLinesPerInch;
|
|
} FRAME;
|
|
typedef FRAME FAR *PFRAME;
|
|
|
|
typedef struct _KBDTYPE { /* kbdtyp */
|
|
USHORT usType;
|
|
USHORT reserved1;
|
|
USHORT reserved2;
|
|
} KBDTYPE;
|
|
typedef KBDTYPE FAR *PKBDTYPE;
|
|
|
|
typedef struct _LINECONTROL { /* lnctl */
|
|
BYTE bDataBits;
|
|
BYTE bParity;
|
|
BYTE bStopBits;
|
|
BYTE fTransBreak;
|
|
} LINECONTROL;
|
|
typedef LINECONTROL FAR *PLINECONTROL;
|
|
|
|
/* MODEMSTATUS.fbModemOn, ASYNC_GETMODEMOUTPUT */
|
|
|
|
#define DTR_ON 0x01
|
|
#define RTS_ON 0x02
|
|
|
|
/* MODEMSTATUS.fbModemOff */
|
|
|
|
#define DTR_OFF 0xFE
|
|
#define RTS_OFF 0xFD
|
|
|
|
typedef struct _MODEMSTATUS { /* mdmst */
|
|
BYTE fbModemOn;
|
|
BYTE fbModemOff;
|
|
} MODEMSTATUS;
|
|
typedef MODEMSTATUS FAR *PMODEMSTATUS;
|
|
|
|
typedef struct _TRACKFORMAT { /* trckfmt */
|
|
BYTE bCommand;
|
|
USHORT usHead;
|
|
USHORT usCylinder;
|
|
USHORT usReserved;
|
|
USHORT cSectors;
|
|
struct {
|
|
BYTE bCylinder;
|
|
BYTE bHead;
|
|
BYTE idSector;
|
|
BYTE bBytesSector;
|
|
} FormatTable[1];
|
|
} TRACKFORMAT;
|
|
typedef TRACKFORMAT FAR *PTRACKFORMAT;
|
|
|
|
typedef struct _RXQUEUE { /* rxq */
|
|
USHORT cch;
|
|
USHORT cb;
|
|
} RXQUEUE;
|
|
typedef RXQUEUE FAR *PRXQUEUE;
|
|
|
|
typedef struct _DEVICEPARAMETERBLOCK { /* dvpblck */
|
|
USHORT reserved1;
|
|
USHORT cCylinders;
|
|
USHORT cHeads;
|
|
USHORT cSectorsPerTrack;
|
|
USHORT reserved2;
|
|
USHORT reserved3;
|
|
USHORT reserved4;
|
|
USHORT reserved5;
|
|
} DEVICEPARAMETERBLOCK;
|
|
typedef DEVICEPARAMETERBLOCK FAR *PDEVICEPARAMETERBLOCK;
|
|
|
|
typedef struct _PTRDRAWFUNCTION { /* ptrdfnc */
|
|
USHORT usReturnCode;
|
|
PFN pfnDraw;
|
|
PCH pchDataSeg;
|
|
} PTRDRAWFUNCTION;
|
|
typedef PTRDRAWFUNCTION FAR *PPTRDRAWFUNCTION;
|
|
|
|
typedef struct _PTRDRAWADDRESS { /* ptrdaddr */
|
|
USHORT reserved;
|
|
PTRDRAWFUNCTION ptrdfnc;
|
|
} PTRDRAWADDRESS;
|
|
typedef PTRDRAWADDRESS FAR *PPTRDRAWADDRESS;
|
|
|
|
typedef struct _SHIFTSTATE { /* shftst */
|
|
USHORT fsState;
|
|
BYTE fNLS;
|
|
} SHIFTSTATE;
|
|
typedef SHIFTSTATE FAR *PSHIFTSTATE;
|
|
|
|
/* HOTKEY.fsHotKey/SHIFTSTATE.fsState */
|
|
|
|
#define RIGHTSHIFT 0x0001
|
|
#define LEFTSHIFT 0x0002
|
|
#define CONTROL 0x0004
|
|
#define ALT 0x0008
|
|
#define SCROLLLOCK_ON 0x0010
|
|
#define NUMLOCK_ON 0x0020
|
|
#define CAPSLOCK_ON 0x0040
|
|
#define INSERT_ON 0x0080
|
|
#define LEFTCONTROL 0x0100
|
|
#define LEFTALT 0x0200
|
|
#define RIGHTCONTROL 0x0400
|
|
#define RIGHTALT 0x0800
|
|
#define SCROLLLOCK 0x1000
|
|
#define NUMLOCK 0x2000
|
|
#define CAPSLOCK 0x4000
|
|
#define SYSREQ 0x8000
|
|
|
|
typedef struct _HOTKEY { /* htky */
|
|
USHORT fsHotKey;
|
|
UCHAR uchScancodeMake;
|
|
UCHAR uchScancodeBreak;
|
|
USHORT idHotKey;
|
|
} HOTKEY;
|
|
typedef HOTKEY FAR *PHOTKEY;
|
|
|
|
typedef struct _MONITORPOSITION { /* mnpos */
|
|
USHORT fPosition;
|
|
USHORT index;
|
|
ULONG pbInBuf;
|
|
USHORT offOutBuf;
|
|
} MONITORPOSITION;
|
|
typedef MONITORPOSITION FAR *PMONITORPOSITION;
|
|
|
|
typedef struct _RATEDELAY { /* rtdly */
|
|
USHORT usDelay;
|
|
USHORT usRate;
|
|
} RATEDELAY;
|
|
typedef RATEDELAY FAR *PRATEDELAY;
|
|
|
|
typedef struct _CODEPAGEINFO { /* cpi */
|
|
PBYTE pbTransTable;
|
|
USHORT idCodePage;
|
|
USHORT idTable;
|
|
} CODEPAGEINFO;
|
|
typedef FAR *PCODEPAGEINFO;
|
|
|
|
typedef struct _CPID { /* cpid */
|
|
USHORT idCodePage;
|
|
USHORT Reserved;
|
|
} CPID;
|
|
typedef FAR *PCPID;
|
|
|
|
typedef struct _LDTADDRINFO { /* ldtaddr */
|
|
PULONG pulPhysAddr;
|
|
USHORT cb;
|
|
} LDTADDRINFO;
|
|
typedef FAR *PLDTADDRINFO;
|
|
|
|
typedef struct _PTRDRAWDATA { /* ptrdd */
|
|
USHORT cb;
|
|
USHORT usConfig;
|
|
USHORT usFlag;
|
|
} PTRDRAWDATA;
|
|
typedef FAR *PPTRDRAWDATA;
|