This file contains documentation about all of the 16 bit IOCTL functions
that are supported by the 32-bit DosDevIOCTL function in Cruisers. For
each category and function, there is a comment saying whether or not the
category or function is supported or not. Those marked with question marks
mean that I am not sure yet how it will be supported or not.
Topic: ASYNC_IOCTL_CATEGORY 0x0001 // Supported
Topic: ASYNC_GETBAUDRATE 0x0061 // Supported
APIRET DosDevIOCtl( pusBaudRate, 0L, 0x0061, ASYNC_IOCTL_CATEGORY, hDevice )
PUSHORT pusBaudRate; /* pointer to variable for baud rate */
HFILE hDevice; /* device handle */
The ASYNC_GETBAUDRATE function retrieves the baud rate for the specified
serial device. The baud rate specifies the number of bits per second that
the serial device transmits or receives.
Parameter Description
----------------------------------------------------------------------------
pusBaudRate Points to the variable that receives the baud rate.
hDevice Identifies the serial device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: ASYNC_GETCOMMERROR 0x006D // Supported
APIRET DosDevIOCtl( pfCommErr, 0L, 0x006D, ASYNC_IOCTL_CATEGORY, hDevice )
PUSHORT pfCommErr; /* pointer to variable for error */
HFILE hDevice; /* device handle */
The ASYNC_GETCOMMERROR function retrieves the communication error word.
After copying the error-word value to the specified variable, the function
clears the error word.
Parameter Description
----------------------------------------------------------------------------
pfCommErr Points to the variable that receives the communication status of
the device. This variable can be a combination of the following
values:
Value Meaning
-----------------------------------------------------------------
RX_QUE_OVERRUN Receive-queue overrun. There is no room in
the device-driver receive queue to put a
character read in from the receive
hardware.
RX_HARDWARE_OVERRUN Receive-hardware overrun. A character
arrived before the previous character was
completely read. The previous character is
lost.
PARITY_ERROR The hardware detected a parity error.
FRAMING_ERROR The hardware detected a framing error.
hDevice Identifies the serial device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful. When an error
occurs, the function returns an error value, and any value copied to the
variable pointed to by the pfCommErr parameter is not valid, and the
function does not clear the error word.
Comments
Other than using this function, the only way to clear the communications
error word for a device is to open the device when there are no outstanding
open handles for it. For more information, see the ASYNC_SETDCBINFO function
(0x0001, 0x0053).
o
Topic: ASYNC_GETCOMMEVENT 0x0072 // Supported
APIRET DosDevIOCtl( pfEvent, 0L, 0x0072, ASYNC_IOCTL_CATEGORY, hDevice )
PUSHORT pfEvent; /* pointer to variable for events */
HFILE hDevice; /* device handle */
The ASYNC_GETCOMMEVENT function retrieves the communications event flags
from the internally maintained event word. After the function copies the
event flags to the specified variable, it clears the event word.
Parameter Description
----------------------------------------------------------------------------
pfEvent Points to the variable that receives the event flags. This
variable can be a combination of the following values:
Value Meaning
-----------------------------------------------------------------
CHAR_RECEIVED A character has been read from the serial-device
receive hardware and placed in the receive
queue.
LAST_CHAR_SENT The last character in the device-driver transmit
queue has been sent to the serial-device transmit
hardware. This does not mean there is no data to
send in any outstanding write requests.
CTS_CHANGED The clear-to-send (CTS) signal has changed
state.
DSR_CHANGED The data-set-ready (DSR) signal has changed
state.
DCD_CHANGED The data-carrier-detect (DCD) signal has changed
state.
BREAK_DETECTED A break has been detected.
ERROR_OCCURRED A parity, framing, or overrun error has occurred.
An overrun can be a receive hardware overrun or a
receive queue overrun.
RI_DETECTED The trailing edge of the ring indicator (RI) has
been detected.
hDevice Identifies the serial device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
This function clears the event word only when it is successful. The event
word remains unchanged until the device is fully closed (there are no
outstanding open handles) and then reopened.
o
Topic: ASYNC_GETCOMMSTATUS 0x0064 // Supported
APIRET DosDevIOCtl( pbStatus, 0L, 0x0064, ASYNC_IOCTL_CATEGORY, hDevice )
PBYTE pbStatus; /* pointer to variable for status */
HFILE hDevice; /* device handle */
The ASYNC_GETCOMMSTATUS function retrieves the communication status of the
specified device.
Parameter Description
----------------------------------------------------------------------------
pbStatus Points to the variable that receives the communication status.
This variable can be a combination of the following values:
Value Meaning
-----------------------------------------------------------------
TX_WAITING_FOR_CTS Transmission is waiting for the
clear-to-send (CTS) signal to be
turned on. For a full description, see
the ASYNC_SETDCBINFO function (0x0001,
0x0053).
TX_WAITING_FOR_DSR Transmission is waiting for the
data-set-ready (DSR) signal to be
turned on. For a full description, see
the ASYNC_SETDCBINFO function (0x0001,
0x0053).
TX_WAITING_FOR_DCD Transmission is waiting for the
data-carrier-detected (DCD) signal to
be turned on. For a full description,
see the ASYNC_SETDCBINFO function
(0x0001, 0x0053).
TX_WAITING_FOR_XON Transmission is waiting because the
XOFF character is received. For a full
description, see the following
"Comments" section.
TX_WAITING_TO_SEND_XON Transmission is waiting because the
XOFF character is transmitted. For a
full description, see the following
"Comments" section.
TX_WAITING_WHILE_BREAK_ON Transmission is waiting because a
break is being transmitted. For a full
description, see the ASYNC_SETBREAKON
function (0x0001, 0x004B).
TX_WAITING_TO_SEND_IMM Character is waiting to transmit
immediately. For a full description,
see the ASYNC_TRANSMITIMM function
(0x0001, 0x0044).
RX_WAITING_FOR_DSR Receive state is waiting for the
data-set-ready (DSR) signal to be
turned on. For a full description, see
the ASYNC_SETDCBINFO function (0x0001,
0x0053).
hDevice Identifies the serial device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
Transmit status indicates why transmission is not occurring, regardless of
whether or not there is data to transmit. However, the device driver must be
enabled for the given condition (for example, enabled for output handshaking
for the modem-control signal) for the status to reflect that the device
driver is waiting for the given condition to transmit.
For example, TX_WAITING_FOR_CTS means that the device driver puts receive
characters in the device-driver receive queue, the device driver is not
waiting to transmit a character immediately, and characters from the
device-driver transmit queue are not transmitted because the clear-to-send
(CTS) signal for output handshaking is used and CTS does not have the proper
value.
The communication status can include TX_WAITING_TO_SEND_XON if the device
driver is enabled for automatic transmit flow control (XON/XOFF) or if the
ASYNC_STOPTRANSMIT function (0x0001, 0x0047) has been used to tell the
device driver to function as if an XOFF character is received. The
ASYNC_TRANSMITIMM function (0x0001, 0x0044) can still be used to transmit
characters immediately. The device driver can still automatically transmit
XON and XOFF characters due to automatic receive flow control (XON/XOFF)
when the device driver is in this state.
The communication status can include TX_WAITING_FOR_XON if the device driver
is enabled for automatic receive flow control. When in this state, the
ASYNC_TRANSMITIMM function (0x0001, 0x0044) can still be used to transmit
characters immediately, and the device driver can still automatically
transmit XON characters.
o
Topic: ASYNC_GETDCBINFO 0x0073 // Supported
APIRET DosDevIOCtl( pusDCB, 0L, 0x0073, ASYNC_IOCTL_CATEGORY, hDevice )
PUSHORT pusDCB; /* pointer to structure for device-control information */
HFILE hDevice; /* device handle */
The ASYNC_GETDCBINFO function retrieves device-control block information.
Parameter Description
----------------------------------------------------------------------------
pusDCB Points to the DCBINFO structure that receives the device-control
block information.
hDevice Identifies the serial device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful. When an error
occurs, the function returns an error value, and any data copied to the
DCBINFO structure pointed to by the pusDCB parameter is not valid.
Comments
To ensure that only valid values are set in the device-control block, the
program should call the ASYNC_GETDCBINFO function to fill the block, and
then modify the settings and call the ASYNC_SETDCBINFO function with the
modified block.
o
Topic: ASYNC_GETINQUECOUNT 0x0068 // Supported
APIRET DosDevIOCtl( pcReceiveQue, 0L, 0x0068, ASYNC_IOCTL_CATEGORY, hDevice )
PUSHORT pcReceiveQue; /* pointer to structure for character count */
HFILE hDevice; /* device handle */
The ASYNC_GETINQUECOUNT function retrieves the number of characters in the
receive queue.
Parameter Description
----------------------------------------------------------------------------
pcReceiveQue Points to the RXQUEUE structure that receives the count of
characters in the receive queue.
hDevice Identifies the serial device that receives the device-control
function. The handle must have been created previously by
using the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
The device-driver receive queue is a memory buffer between the memory
pointed to by the read-request packet and the receive hardware for this
serial device. The application may not assume that there are no unsatisfied
read requests if there are characters in the device-driver receive queue.
The behavior of data movement between the read request and the receive queue
may change from release to release of the device driver. Programs should not
be written to have a dependency on this information.
Programs should be written to be independent of the receive queue being a
fixed size. The information in this field allows the application to get the
size of the receive queue. The current size of the receive queue is
approximately 1K but is subject to change.
The application should be written to avoid device-driver receive queue
overruns by using an application-to-application block protocol with the
system the application is communicating with.
o
Topic: ASYNC_GETLINECTRL 0x0062 // Supported
APIRET DosDevIOCtl( pbLineCtrl, 0L, 0x0062, ASYNC_IOCTL_CATEGORY, hDevice )
PBYTE pbLineCtrl; /* pointer to structure for control settings */
HFILE hDevice; /* device handle */
The ASYNC_GETLINECTRL function retrieves the line characteristics (stop
bits, parity, data bits, break) for the specified device.
Parameter Description
----------------------------------------------------------------------------
pbLineCtrl Points to a LINECONTROL structure that receives the settings for
the number of data bits, parity, and number of stop bits.
hDevice Identifies the serial device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: ASYNC_GETLINESTATUS 0x0065 // Supported
APIRET DosDevIOCtl( pbTransStatus, 0L, 0x0065, ASYNC_IOCTL_CATEGORY, hDevice )
PBYTE pbTransStatus; /* pointer to variable for status */
HFILE hDevice; /* device handle */
The ASYNC_GETLINESTATUS function retrieves the data-transmission status for
the specified serial device.
Parameter Description
----------------------------------------------------------------------------
pbTransStatus Points to the variable that receives the data-transmission
status. This variable can be a combination of the following
values:
Value Meaning
-------------------------------------------------------------
WRITE_REQUEST_QUEUED Write-request packets in progress or
queued.
DATA_IN_TX_QUE Data in the device-driver transmit
queue.
HARDWARE_TRANSMITTING Transmit hardware currently
transmitting data.
CHAR_READY_TO_SEND_IMM Character waiting to be transmitted
immediately.
WAITING_TO_SEND_XON Waiting to automatically transmit
XON.
WAITING_TO_SEND_XOFF Waiting to automatically transmit
XOFF.
hDevice Identifies the serial device that receives the device-control
function. The handle must have been created previously by
using the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: ASYNC_GETMODEMINPUT 0x0067 // Supported
APIRET DosDevIOCtl( pbCtrlSignals, 0L, 0x0067, ASYNC_IOCTL_CATEGORY, hDevice )
PBYTE pbCtrlSignals; /* pointer to variable for control signals */
HFILE hDevice; /* device handle */
The ASYNC_GETMODEMINPUT function retrieves the modem-control input signals
for the specified device.
Parameter Description
----------------------------------------------------------------------------
pbCtrlSignals Points to the variable that receives the modem-control
signals. This variable can be a combination of the following
values:
Value Meaning
-------------------------------------------------------------
CTS_ON Clear-to-send (CTS) signal is on. If not given, the
signal is off.
DSR_ON Data-set-ready (DSR) signal is on. If not given, the
signal is off.
RI_ON Ring-indicator (RI) signal is on. If not given, the
signal is off.
DCD_ON Data-carrier-detect (DCD) signal is on. If not given,
the signal is off.
hDevice Identifies the serial device that receives the device-control
function. The handle must have been created previously by
using the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: ASYNC_GETMODEMOUTPUT 0x0066 // Supported
APIRET DosDevIOCtl( pbCtrlSignals, 0L, 0x0066, ASYNC_IOCTL_CATEGORY, hDevice )
PBYTE pbCtrlSignals; /* pointer to variable for control signals */
HFILE hDevice; /* device handle */
The ASYNC_GETMODEMOUTPUT function retrieves the modem-control output signals
for the specified device.
Parameter Description
----------------------------------------------------------------------------
pbCtrlSignals Points to the variable that receives the modem-control
signals. This variable can be one or both of the following
values:
Value Meaning
-------------------------------------------------------------
DTR_ON Data-terminal-ready (DTR) signal is on. If not given,
the signal is off.
RTS_ON Request-to-send (RTS) signal is on. If not given, the
signal is off.
hDevice Identifies the serial device that receives the device-control
function. The handle must have been created previously by
using the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: ASYNC_GETOUTQUECOUNT 0x0069 // Supported
APIRET DosDevIOCtl( pcTransmitQue, 0L, 0x0069, ASYNC_IOCTL_CATEGORY, hDevice )
PUSHORT pcTransmitQue; /* pointer to structure for character count */
HFILE hDevice; /* device handle */
The ASYNC_GETOUTQUECOUNT function retrieves a count of characters in the
transmit queue.
Parameter Description
----------------------------------------------------------------------------
pcTransmitQue Points to the RXQUEUE structure that receives the count of
characters in the transmit queue.
hDevice Identifies the serial device that receives the device-control
function. The handle must have been created previously by
using the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
The device-driver transmit queue is a memory buffer between the memory
pointed to by the write-request packet and the transmit hardware for this
serial device. If the transmit queue is empty, the program may not assume
that all write requests are completed or that no write requests are
outstanding. The behavior of data movement between the write request and the
transmit queue may change from release to release of the device driver.
Programs should not be written to have a dependency on this information.
Programs should be written to be independent of the transmit queue being a
fixed size. The information in this field allows the application to get the
size of the transmit queue. The current size of the transmit queue is
approximately 128 bytes but is subject to change.
o
Topic: ASYNC_SETBAUDRATE 0x0041 // Supported
APIRET DosDevIOCtl( 0L, pusBitRate, 0x0041, ASYNC_IOCTL_CATEGORY, hDevice )
PUSHORT pusBitRate; /* pointer to variable with baud rate */
HFILE hDevice; /* device handle */
The ASYNC_SETBAUDRATE function sets the baud rate for the specified serial
device. The baud rate specifies the number of bits per second that the
serial device transmits or receives.
Parameter Description
----------------------------------------------------------------------------
pusBitRate Points to the variable that contains the baud rate. This
parameter can be any one of the following values: 110, 150, 300,
600, 1200, 2400, 4800, 9600, or 19200.
hDevice Identifies the serial device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
the specified baud rate is out of range or an error occurs.
Comments
The initial rate for a serial device is 1200 baud. Once the rate is set, it
remains unchanged until set again, even if the device is closed and then
reopened.
o
Topic: ASYNC_SETBREAKOFF 0x0045 // Supported
APIRET DosDevIOCtl( pfCommErr, 0L, 0x0045, ASYNC_IOCTL_CATEGORY, hDevice )
PUSHORT pfCommErr; /* pointer to variable for error value */
HFILE hDevice; /* device handle */
The ASYNC_SETBREAKOFF function turns off the break character. The device
driver stops generating a break signal. It is not considered an error if the
device driver is not generating a break signal. The device driver then
resumes transmitting characters, taking into account all the other reasons
why it may or may not transmit characters.
Parameter Description
----------------------------------------------------------------------------
pfCommErr Points to the variable that receives the communication status of
the device. This variable can be a combination of the following
values:
Value Meaning
-----------------------------------------------------------------
RX_QUE_OVERRUN Receive queue overrun. There is no room in
the device-driver receive queue to put a
character read in from the receive
hardware.
RX_HARDWARE_OVERRUN Receive hardware overrun. A character
arrived before the previous character was
completely read. The previous character is
lost.
PARITY_ERROR The hardware detected a parity error.
FRAMING_ERROR The hardware detected a framing error.
The function sets the variable to zero if it encounters an
error.
hDevice Identifies the serial device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: ASYNC_SETBREAKON 0x004B // Supported
APIRET DosDevIOCtl( pfCommErr, 0L, 0x004B, ASYNC_IOCTL_CATEGORY, hDevice )
PUSHORT pfCommErr; /* pointer to variable for error value */
HFILE hDevice; /* device handle */
The ASYNC_SETBREAKON function turns on the break character. The device
driver generates the break signal immediately. It is not considered an error
if the device driver is already generating a break signal. The device driver
does not wait for the transmit hardware to become empty. However, more data
will not be given to the transmit hardware until the break is turned off.
The break signal will always be transmitted, regardless of whether the
device driver is or is not transmitting characters due to other reasons.
Parameter Description
----------------------------------------------------------------------------
pfCommErr Points to the variable that receives the communication status of
the device. This variable can be a combination of the following
values:
Value Meaning
-----------------------------------------------------------------
RX_QUE_OVERRUN Receive queue overrun. There is no room in
the device-driver receive queue to put a
character read in from the receive
hardware.
RX_HARDWARE_OVERRUN Receive hardware overrun. A character
arrived before the previous character was
completely read. The previous character is
lost.
PARITY_ERROR The hardware detected a parity error.
FRAMING_ERROR The hardware detected a framing error.
The function sets the variable to zero if it encounters an
error.
hDevice Identifies the serial device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
Closing the device turns off the break character if there are no outstanding
open device handles.
o
Topic: ASYNC_SETDCBINFO 0x0053 // Supported
APIRET DosDevIOCtl( 0L, pusDCB, 0x0053, ASYNC_IOCTL_CATEGORY, hDevice )
PUSHORT pusDCB; /* pointer to structure with device-control information */
HFILE hDevice; /* device handle */
The ASYNC_SETDCBINFO function sets device-control block information.
Parameter Description
----------------------------------------------------------------------------
pusDCB Points to the DCBINFO structure that receives the device-control
block information.
hDevice Identifies the serial device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful. When an error
occurs, the function returns an error value, and the device-control block
characteristics of the device driver for this serial device remain
unchanged.
Comments
A program can prevent making unwanted changes to device modes by calling the
ASYNC_GETDCBINFO function (0x0001,0x0073) to retrieve a copy of the current
DCB. The program can then modify only those fields it needs to and use the
modified DCB with the ASYNC_SETDCBINFO function.
o
Topic: ASYNC_SETLINECTRL 0x0042 // Supported
APIRET DosDevIOCtl( 0L, pbLineCtrl, 0x0042, ASYNC_IOCTL_CATEGORY, hDevice )
PBYTE pbLineCtrl; /* pointer to structure with line settings */
HFILE hDevice; /* device handle */
The ASYNC_SETLINECTRL function sets the line characteristics (stop bits,
parity, and data bits) for the specified serial device.
Parameter Description
----------------------------------------------------------------------------
pbLineCtrl Points to the LINECONTROL structure that contains the settings
for the number of data bits, parity, and number of stop bits.
hDevice Identifies the serial device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
any of the specified line characteristics is out of range. When an error
occurs, line characteristics remain unchanged.
Comments
When a device is first opened, the initial line characteristics are 7 data
bits, even parity, and 1 stop bit. After line characteristics are changed,
they remain changed until the function is used again, even if the device is
closed and reopened.
If the number of data bits is less than 8, the device driver fills with
zeros the unused high-order bits of each character it receives from the
device; the device driver ignores the unused high-order bits of characters
it receives from the program. Therefore, if the number of data bits is 7 but
the XOFF character is 0x80, the device driver does not recognize the XOFF
character even when automatic-transmission control is enabled. If the error
substitution character is 0x80, the device driver still places 0x80 in the
receive queue. Programs must see that these characters match the specified
data size. Any characters that were in the receive queue before the function
is called remain unchanged.
o
Topic: ASYNC_SETMODEMCTRL 0x0046 // Supported
APIRET DosDevIOCtl( pfCommErr, pbCtrlSignals, 0x0046, ASYNC_IOCTL_CATEGORY, hDevice )
PUSHORT pfCommErr; /* pointer to variable for error value */
PBYTE pbCtrlSignals; /* pointer to structure with control signals */
HFILE hDevice; /* device handle */
The ASYNC_SETMODEMCTRL function sets the modem-control signals. This
function turns on or off the data-terminal-ready (DTR) and ready-to-transmit
(RTS) signals (initially, the DTR and RTS signals are turned off).
Parameter Description
----------------------------------------------------------------------------
pfCommErr Points to the variable that receives the communication status
of the device. This variable can be a combination of the
following values:
Value Meaning
-------------------------------------------------------------
RX_QUE_OVERRUN Receive queue overrun. There is no room
in the device driver receive queue to
put a character read in from the receive
hardware.
RX_HARDWARE_OVERRUN Receive hardware overrun. A character
arrived before the previous character
was completely read. The previous
character is lost.
PARITY_ERROR The hardware detected a parity error.
FRAMING_ERROR The hardware detected a framing error.
The function sets the variable to zero if it encounters an
error.
pbCtrlSignals Points to the MODEMSTATUS structure that contains the
settings for the modem-control signals.
hDevice Identifies the serial device that receives the device-control
function. The handle must have been created previously by
using the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
the specified signal settings are invalid. When an error occurs, the signal
settings remain unchanged.
Comments
This function must not be used to enable or disable the DTR or RTS signal if
the signal is being used for input handshaking or toggling on transmit. Any
attempt to do so will cause a "general failure" error.
Although the function copies the communication error status to the variable
pointed to by the pfCommErr parameter, it does not clear the error.
If the serial device is opened after having been closed, the DTR and RTS
signals are set to the values specified by the DTR control mode and the RTS
control mode, respectively. For a full description, see the
ASYNC_SETDCBINFO function (0x0001,0x0053).
After a serial device has been closed, the device driver turns off the DTR
and RTS signals, but only after the device has transmitted all data and has
waited for at least as long as it would take to transmit 10 additional
characters.
o
Topic: ASYNC_STARTTRANSMIT 0x0048 // Supported
APIRET DosDevIOCtl( 0L, 0L, 0x0048, ASYNC_IOCTL_CATEGORY, hDevice )
HFILE hDevice; /* device handle */
The ASYNC_STARTTRANSMIT function starts transmission. This function allows
data transmission to be resumed by the device driver if data transmission is
halted due to the ASYNC_STOPTRANSMIT function (0x0001,0x0047) or due to an
XOFF character being received while the device driver is in automatic
transmit flow control mode. This function is similar to the device receiving
the XON character.
Parameter Description
----------------------------------------------------------------------------
hDevice Identifies the serial device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
There may be other reasons why transmission is disabled; transmission may
not be resumed. For more information, see the ASYNC_GETCOMMSTATUS function
(0x0001,0x0064).
o
Topic: ASYNC_STOPTRANSMIT 0x0047 // Supported
APIRET DosDevIOCtl( 0L, 0L, 0x0047, ASYNC_IOCTL_CATEGORY, hDevice )
HFILE hDevice; /* device handle */
The ASYNC_STOPTRANSMIT function stops the device from transmitting. This
function stops data transmission by preventing the device driver from
sending additional data to the transmit hardware. This function is similar
to the device receiving the XOFF character.
Parameter Description
----------------------------------------------------------------------------
hDevice Identifies the serial device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
If automatic-transmission control is enabled, this request causes the device
driver to behave exactly as if it received the XOFF character. Transmission
can be resumed if an XON character is received by the device driver, if an
ASYNC_STARTTRANSMIT (0x0001,0x0048) function is received, or if the device
driver is told to disable automatic-transmission control and in the previous
state automatic-transmission control was enabled.
If automatic-transmission control is disabled, the ASYNC_STARTTRANSMIT
function (0x0001,0x0048) must be called for transmission to resume. If,
after this request is received, the device driver is told to enable
automatic-transmission control, transmission is still disabled. It can be
re-enabled by any of the scenarios discussed above.
There still may be other reasons why transmission may be disabled. For more
information, see the ASYNC_GETCOMMSTATUS function (0x0001,0x0064).
o
Topic: ASYNC_TRANSMITIMM 0x0044 // Supported
APIRET DosDevIOCtl( 0L, pbChar, 0x0044, ASYNC_IOCTL_CATEGORY, hDevice )
PBYTE pbChar; /* pointer to character */
FILE hDevice; /* device handle */
The ASYNC_TRANSMITIMM function transmits the specified byte immediately.
Parameter Description
----------------------------------------------------------------------------
pbChar Points to the character to be transmitted.
hDevice Identifies the serial device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
The device driver queues the character as the next character to be
transmitted even if there are already characters in the transmit queue.
If automatic-receiving control is enabled, an XON or XOFF character may be
transmitted before the requested character.
The function always returns before the character is actually transmitted.
If a character is already waiting to be transmitted immediately, the
function returns an error. The ASYNC_GETCOMMSTATUS function (0x0001,0x0064)
can be used to determine whether a character is currently waiting to be
transmitted immediately.
The device driver will not immediately transmit the character that is
waiting to be transmitted immediately if the device driver is not
transmitting characters due to modem-control signal-output handshaking or if
the device driver is currently transmitting a break.
If the device driver is not transmitting characters due to automatic
transmission or receiving control (XON/XOFF) being enabled or due to
operating as if an XOFF character had been received, the device driver still
transmits a character that is waiting to be transmitted immediately due to
this request. An application that requests that the device driver transmit a
character immediately if automatic transmission or receiving control is
enabled may cause unexpected results to happen to the communications line
flow control protocol.
This function is generally used to manually send XON and XOFF characters.
The character waiting to be transmitted immediately is not considered part
of the device driver transmit queue and is not flushed due to a flush
request. XON/XOFF characters that are automatically transmitted due to
automatic-receiving control may or may not be placed ahead of the character
waiting to be transmitted immediately. Applications should not be dependent
on this ordering.
o
Topic: DEV_IOCTL_CATEGORY 0x000B // Supported
Topic: DEV_FLUSHINPUT 0x0001 // Supported
APIRET DosDevIOCtl( 0L, pbCommand, 0x0001, DEV_IOCTL_CATEGORY, hDevice )
PBYTE pbCommand; /* pointer to variable with command */
HFILE hDevice; /* device handle */
The DEV_FLUSHINPUT function flushes the input buffer.
Parameter Description
----------------------------------------------------------------------------
pbCommand Points to the variable that contains a reserved value. This value
must be zero.
hDevice Identifies the device that receives the device-control function.
The handle must have been created previously by using the
DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: DEV_FLUSHOUTPUT 0x0002 // Supported
APIRET DosDevIOCtl( 0L, pbCommand, 0x0002, DEV_IOCTL_CATEGORY, hDevice )
PBYTE pbCommand; /* pointer to variable with command */
HFILE hDevice; /* device handle */
The DEV_FLUSHOUTPUT function flushes the output buffer.
Parameter Description
----------------------------------------------------------------------------
pbCommand Points to the variable that contains a reserved value. This value
must be zero.
hDevice Identifies the device that receives the device-control function.
The handle must have been created previously by using the
DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: DEV_QUERYMONSUPPORT 0x0060 // Supported, returns error
APIRET DosDevIOCtl( 0L, pbCommand, 0x0060, DEV_IOCTL_CATEGORY, hDevice )
PBYTE pbCommand; /* pointer to variable with command */
HFILE hDevice; /* device handle */
The DEV_QUERYMONSUPPORT function queries a device driver for monitor
support.
Parameter Description
----------------------------------------------------------------------------
pbCommand Points to the variable that contains a reserved value. This value
must be zero.
hDevice Identifies the device that receives the device-control function.
The handle must have been created previously by using the
DosOpen function.
Return Value
The return value is zero if the device supports character monitors or an
error value if an error occurs.
o
Topic: DSK_IOCTL_CATEGORY 0x0008 // Supported, mostly
Topic: DSK_BLOCKREMOVABLE 0x0020 // Supported
APIRET DosDevIOCtl( pfNonRemovable, pbCommand, 0x0020, DSK_IOCTL_CATEGORY, hDevice )
PBYTE pfNonRemovable; /* pointer to removable/nonremovable flag */
PBYTE pbCommand; /* pointer to variable with command */
HFILE hDevice; /* device handle */
The DSK_BLOCKREMOVABLE function indicates whether the block device is
removable.
Parameter Description
----------------------------------------------------------------------------
pfNonRemovable Points to the variable that receives the medium type. This
variable is 0x0000 if the medium is removable or 0x0001 if
it is nonremovable.
pbCommand Points to the variable that contains a reserved value. This
value must be zero.
hDevice Identifies the disk-drive that receives the device-control
function. The handle must have been created previously by
using the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: DSK_FORMATVERIFY 0x0045 // Supported
APIRET DosDevIOCtl( 0L, pbCommand, 0x0045, DSK_IOCTL_CATEGORY, hDevice )
PBYTE pbCommand; /* pointer to structure with command */
HFILE hDevice; /* device handle */
The DSK_FORMATVERIFY function formats and verifies a track on a disk drive
according to the information passed in the format table. The format table is
passed to the controller and the controller performs whatever operations are
necessary for formatting.
Parameter Description
----------------------------------------------------------------------------
pbCommand Points to the TRACKFORMAT structure that contains information
about the format operation.
hDevice Identifies the disk-drive that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
Some controllers do not support formatting tracks with varying sector sizes.
The program must make sure that the sector sizes specified in the format
table are all the same.
o
Topic: DSK_GETDEVICEPARAMS 0x0063 // Not Supported (?????)
APIRET DosDevIOCtl( pbBPB, pbCommand, 0x0063, DSK_IOCTL_CATEGORY, hDevice )
PBYTE pbBPB; /* pointer to structure for BIOS parameter blocks */
PBYTE pbCommand; /* pointer to variable with command */
HFILE hDevice; /* device handle */
The DSK_GETDEVICEPARAMS function retrieves the device parameters for an MS
OS/2 block device. The device driver maintains two BIOS parameter blocks
(BPB) for each disk drive. One block corresponds to the medium currently in
the disk drive. The other is a recommended BPB, based on the type of medium
that corresponds to the physical device. For example, a high-density disk
drive has a BPB for a 96 tracks-per-inch (tpi) floppy disk; a low-density
disk drive has a BPB for a 48-tpi floppy disk.
Parameter Description
----------------------------------------------------------------------------
pbBPB Points to the BIOSPARAMETERBLOCK structure that receives the
BPB.
pbCommand Points to the variable that specifies which BPB to retrieve. If
the variable is 0x0000, the function retrieves the recommended
BPB for the drive (the BPB for the physical device). If the
variable is 0x0001, the function retrieves the BPB for the medium
currently in the drive.
hDevice Identifies the disk drive that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: DSK_GETLOGICALMAP 0x0021 // Supported (?????)
APIRET DosDevIOCtl( pbDrive, pbCommand, 0x0021, DSK_IOCTL_CATEGORY, hDevice )
PBYTE pbDrive; /* pointer to variable for drive number */
PBYTE pbCommand; /* pointer to variable with command */
HFILE hDevice; /* device handle */
The DSK_GETLOGICALMAP function retrieves the mapping of a logical drive.
Parameter Description
----------------------------------------------------------------------------
pbDrive Points to the variable that receives the logical-drive number.
This can be 1 for drive A, 2 for drive B, and so on. The function
sets the variable to zero if only one logical drive is mapped to
the physical drive.
pbCommand Points to a variable that contains a reserved value. The value
must be zero.
hDevice Identifies the physical device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: DSK_LOCKDRIVE 0x0000 // Supported
APIRET DosDevIOCtl( 0L, pbCommand, 0x0000, DSK_IOCTL_CATEGORY, hDevice )
PBYTE pbCommand; /* pointer to variable with command */
HFILE hDevice; /* device handle */
The DSK_LOCKDRIVE function locks a disk drive, preventing file I/O by
another process on the volume in the disk drive. This function succeeds if
there is only one file handle open on the volume in the disk drive because
the desired result is to exclude all other I/O to the volume.
Parameter Description
----------------------------------------------------------------------------
pbCommand Points to the variable that contains a reserved value. The value
must be zero.
hDevice Identifies the disk drive that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: DSK_READTRACK 0x0064 // Supported
APIRET DosDevIOCtl( pbBuffer, pbCommand, 0x0064, DSK_IOCTL_CATEGORY, hDevice )
PBYTE pbBuffer; /* pointer to buffer for data */
PBYTE pbCommand; /* pointer to structure with command */
HFILE hDevice; /* device handle */
The DSK_READTRACK function reads from a track on a specified disk drive. The
track table passed in the call determines the sector number, which is passed
to the disk controller for the operation. When the sectors are odd-numbered
or nonconsecutive, the request is broken into an appropriate number of
single-sector operations, and one sector at a time is read.
Parameter Description
----------------------------------------------------------------------------
pbBuffer Points to the buffer that receives data read from the track.
pbCommand Points to the TRACKLAYOUT structure that contains the information
about the read operation.
hDevice Identifies the disk drive that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
The device driver will not correctly read sectors of sizes other than 512
bytes if reading would generate a direct-memory-access (DMA) violation
error. Programs must ensure that this error does not occur.
o
Topic: DSK_REDETERMINEMEDIA 0x0002 // Supported
APIRET DosDevIOCtl( 0L, pbCommand, 0x0002, DSK_IOCTL_CATEGORY, hDevice )
PBYTE pbCommand; /* pointer to variable with command */
HFILE hDevice; /* device handle */
The DSK_REDETERMINEMEDIA function redetermines the media on a block device
and updates the volume in the drive. This function is normally issued after
the volume identification information has been changed (for example, by
formatting the disk). This function should be called only if the volume is
locked.
Parameter Description
----------------------------------------------------------------------------
pbCommand Points to the variable that contains a reserved value. The value
must be zero.
hDevice Identifies the disk drive that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: DSK_SETDEVICEPARAMS 0x0043 // Not Supported (?????)
APIRET DosDevIOCtl( pbBPB, pbCommand, 0x0043, DSK_IOCTL_CATEGORY, hDevice )
PBYTE pbBPB; /* pointer to structure with BIOS parameter blocks */
PBYTE pbCommand; /* pointer to buffer with command */
HFILE hDevice; /* device handle */
The DSK_SETDEVICEPARAMS function sets the device parameters for an MS OS/2
block device. The device driver maintains two BIOS parameter blocks (BPB)
for each disk drive. One block is the BPB that corresponds to the medium
currently in the disk drive. The other block is a recommended BPB, based on
the type of medium that corresponds to the physical device. For example, a
high-density disk drive has a BPB for a 96 tracks per inch (tpi) floppy
disk; a low-density disk drive has a BPB for a 48-tpi floppy disk.
Parameter Description
----------------------------------------------------------------------------
pbBPB Points to the BIOSPARAMETERBLOCK structure that contains the
device parameters to be set for the drive.
pbCommand Point to the variable that contains the command description. This
variable can be one of the following values:
Value Meaning
-----------------------------------------------------------------
BUILD_BPB_FROM_MEDIUM Build the BIOS parameter block (BPB) from
the medium for all subsequent build BPB
requests.
REPLACE_BPB_FOR_DEVICE Change the default BPB for the physical
device.
REPLACE_BPB_FOR_MEDIUM Change the BPB for the medium to the
specified BPB. Return the new BPB as the
BPB for the medium for all subsequent
build BPB requests.
hDevice Identifies the disk drive that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: DSK_SETLOGICALMAP 0x0003 // Supported (?????)
APIRET DosDevIOCtl( pbDrive, pbCommand, 0x0003, DSK_IOCTL_CATEGORY, hDevice )
PBYTE pbDrive; /* pointer to variable with drive number */
PBYTE pbCommand; /* pointer to variable with command */
HFILE hDevice; /* device handle */
The DSK_SETLOGICALMAP function sets the logical-drive mapping for a block
device.
Parameter Description
----------------------------------------------------------------------------
pbDrive Points to the variable that contains the logical-drive number.
This can be 1 for drive A, 2 for drive B, and so on. When the
function returns, it copies the specified drive's current
logical-drive number to the variable. If only one logical device
is mapped to the physical drive, the function sets the variable
to zero.
pbCommand Points to the variable that contains a reserved value. The value
must be zero.
hDevice Identifies the disk drive that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: DSK_SYNC 0x005D // Not Supported (?????)
APIRET DosDevIOCtl( pbBuffer, pbCommand, 0x005D, DSK_IOCTL_CATEGORY, hDevice )
PBYTE pbBuffer; /* pointer to buffer with data */
PBYTE pbCommand; /* pointer to structure with command */
HFILE hDevice; /* device handle */
The DSK_SYNC function synchronizes disk I/O operations.
Parameter Description
----------------------------------------------------------------------------
pbBuffer Not used; must be zero.
pbCommand Points to the synchronization operation.
hDevice Identifies the disk drive that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
Some I/O operations cannot be overlapped with disk operations. This IOCtl
function allows the disk device driver to be instructed to complete
in-process operations, and then queue all further requests for disk I/O. A
second call must be made, with pbCommand set to 0x0000, to instruct the disk
device driver to release queued disk I/O and resume normal processing.
o
Topic: DSK_UNLOCKDRIVE 0x0001 // Supported
APIRET DosDevIOCtl( 0L, pbCommand, 0x0001, DSK_IOCTL_CATEGORY, hDevice )
PBYTE pbCommand; /* pointer to variable with command */
HFILE hDevice; /* device handle */
The DSK_UNLOCKDRIVE function unlocks a drive. The drive requires the locked
volume represented by the handle.
Parameter Description
----------------------------------------------------------------------------
pbCommand Points to the variable that contains a reserved value. The value
must be zero.
hDevice Identifies the disk drive that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: DSK_VERIFYTRACK 0x0065 // Supported
APIRET DosDevIOCtl( 0L, pbCommand, 0x0065, DSK_IOCTL_CATEGORY, hDevice )
PBYTE pbCommand; /* pointer to structure with command */
HFILE hDevice; /* device handle */
The DSK_VERIFYTRACK function verifies an operation on a specified disk
drive.
Parameter Description
----------------------------------------------------------------------------
pbCommand Points to the TRACKLAYOUT structure that contains information
about the verification operation.
hDevice Identifies the disk drive that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
The track-layout table passed in the function determines the sector number,
which is passed to the disk controller. When the sectors are odd-numbered or
nonconsecutive, the request is broken into an appropriate number of
single-sector operations, and one sector at a time is verified.
o
Topic: DSK_WRITETRACK 0x0044 // Supported
APIRET DosDevIOCtl( pbBuffer, pbCommand, 0x0044, DSK_IOCTL_CATEGORY, hDevice )
PBYTE pbBuffer; /* pointer to buffer with data */
PBYTE pbCommand; /* pointer to structure with command */
HFILE hDevice; /* device handle */
The DSK_WRITETRACK function writes to a track on a specified disk drive.
Parameter Description
----------------------------------------------------------------------------
pbBuffer Points to the buffer that contains the data to be written.
pbCommand Points to the TRACKLAYOUT structure that contains information
about the write operation.
hDevice Identifies the disk drive that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
The track-layout table passed in the function determines the sector number,
which is passed to the disk controller. When the sectors are odd-numbered or
nonconsecutive, the request is broken into an appropriate number of
single-sector operations, and one sector at a time is written.
o
Topic: KBD_IOCTL_CATEGORY 0x0004 // Not Supported, mostly
Topic: KBD_CREATE 0x005D // Not Supported
APIRET DosDevIOCtl( 0L, pbCommand, 0x005D, KBD_IOCTL_CATEGORY, hDevice )
PBYTE pbCommand; /* pointer to buffer with handle and pid */
HFILE hDevice; /* device handle */
The KBD_CREATE function allocates memory for a logical keyboard (KCB). This
function obtains physical memory for a new logical keyboard. The process ID
and a logical-keyboard handle passed by the caller stored in allocated
memory for use later by the KBD_SETKCB function. A logical keyboard is not
created if the handle is zero.
Parameter Description
----------------------------------------------------------------------------
pbCommand Points to the buffer that contains the value to use as the
logical-keyboard handle and the code-page identifier to use with
the logical keyboard.
hDevice Identifies the keyboard that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
the logical keyboard cannot be created.
o
Topic: KBD_DESTROY 0x005E // Not Supported
APIRET DosDevIOCtl( 0L, pbCommand, 0x005E, KBD_IOCTL_CATEGORY, hDevice )
PBYTE pbCommand; /* pointer to buffer with handle and pid */
HFILE hDevice; /* device handle */
The KBD_DESTROY function frees memory for a logical keyboard (KCB). This
function searches for the existing logical keyboard that has the specified
logical-keyboard handle and process ID combination and frees the physical
memory associated with the logical keyboard. No action is taken if the
specified handle is zero.
Parameter Description
----------------------------------------------------------------------------
pbCommand Points to the buffer that contains the logical-keyboard handle.
hDevice Identifies the keyboard that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
the logical keyboard identified by the given handle cannot be found.
o
Topic: KBD_GETCODEPAGEID 0x0078 // Not Supported
APIRET DosDevIOCtl( pbCPID, 0L, 0x0078, KBD_IOCTL_CATEGORY, hDevice )
PBYTE pbCPID; /* pointer to buffer for code page id */
HFILE hDevice; /* device handle */
The KBD_GETCODEPAGEID function retrieves the identifier of the code page
being used by the current logical keyboard.
Parameter Description
----------------------------------------------------------------------------
pbCPID Points to the CPID structure that receives the code-page
identifier.
hDevice Identifies the keyboard that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
This function sets the identifier to zero to indicate that PC US 437 is
being used.
o
Topic: KBD_GETINPUTMODE 0x0071 // Supported
APIRET DosDevIOCtl( pbInputMode, 0L, 0x0071, KBD_IOCTL_CATEGORY, hDevice )
PBYTE pbInputMode; /* pointer to variable for input mode */
HFILE hDevice; /* device handle */
The KBD_GETINPUTMODE function retrieves the input mode of the screen group
of the active process. The input mode defines whether the following keys are
processed as commands or as keystrokes: CTRL+C, CTRL+BREAK, CTRL+S, CTRL+P,
SCROLL LOCK, PRTSC.
Parameter Description
----------------------------------------------------------------------------
pbInputMode Points to the variable that receives the input mode. If the
variable is ASCII_MODE, the keyboard has ASCII input mode. If
the variable is BINARY_MODE, the keyboard has binary input
mode.
hDevice Identifies the keyboard that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: KBD_GETINTERIMFLAG 0x0072 // Not Supported
APIRET DosDevIOCtl( pfFlags, 0L, 0x0072, KBD_IOCTL_CATEGORY, hDevice )
PBYTE pfFlags; /* pointer to variable for flags */
HFILE hDevice; /* device handle */
The KBD_GETINTERIMFLAG function retrieves interim character flags.
Parameter Description
----------------------------------------------------------------------------
pfFlags Points to the variable that receives interim flags. If the
variable is CONVERSION_REQUEST, the program requested conversion.
If it is INTERIM_CHAR, the interim console flag is set.
hDevice Identifies the keyboard that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: KBD_GETKEYBDTYPE 0x0077 // Supported
APIRET DosDevIOCtl( pbType, 0L, 0x0077, KBD_IOCTL_CATEGORY, hDevice )
PBYTE pbType; /* pointer to structure for keyboard type */
HFILE hDevice; /* device handle */
The KBD_GETKEYBDTYPE function retrieves information about the type of
keyboard being used.
Parameter Description
----------------------------------------------------------------------------
pbType Points to the KBDTYPE structure that receives the keyboard type.
hDevice Identifies the keyboard that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: KBD_GETSESMGRHOTKEY 0x0076 // Not Supported
APIRET DosDevIOCtl( pbHotKeyBuf, pcHotKeys, 0x0076, KBD_IOCTL_CATEGORY, hDevice )
PBYTE pbHotKeyBuf; /* pointer to structure for hot-key information */
PUSHORT pcHotKeys; /* pointer to variable for hot-key count */
HFILE hDevice; /* device handle */
The KBD_GETSESMGRHOTKEY function retrieves the hot-key information
structures for the currently defined hot keys.
Parameter Description
----------------------------------------------------------------------------
pbHotKeyBuf Points to the HOTKEY structure that receives hot-key
information structures. The buffer must be at least as large as
the number of structures requested.
pcHotKeys Points to the variable that specifies the number of hot-key
information structures to retrieve. If this variable is
HOTKEY_MAX_COUNT, the function copies a value to the variable
that specifies the maximum number of hot keys the keyboard
device driver can support. If this variable is
HOTKEY_CURRENT_COUNT, the function copies a value to this
variable that specifies the actual number of hot keys currently
supported. The function also copies the hot-key information to
the buffer pointed to by the pbHotKeyBuf parameter.
hDevice Identifies the keyboard that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
If the variable pointed to by pcHotKeys is HOTKEY_MAX_COUNT, the function
returns the number of currently defined hot keys. The program uses this
number to allocate sufficient space to retrieve the actual hot-key
information (retrieved by setting the variable to HOTKEY_CURRENT_COUNT).
Programs should retrieve the number of hot keys first, allocate sufficient
space for the buffer pointed to by the pbHotKeyBuf parameter, then retrieve
the hot keys.
o
Topic: KBD_GETSHIFTSTATE 0x0073 // Supported
APIRET DosDevIOCtl( pbShiftState, 0L, 0x0073, KBD_IOCTL_CATEGORY, hDevice )
PBYTE pbShiftState; /* pointer to structure for shift state */
HFILE hDevice; /* device handle */
The KBD_GETSHIFTSTATE function retrieves the shift state of the default
keyboard of the current screen group. The shift state identifies whether the
SHIFT, CTRL, ALT, INS, and SYSREQ keys are up or down and whether the SCROLL
LOCK, NUMLOCK, CAPSLOCK, and INSERT modes are on.
Parameter Description
----------------------------------------------------------------------------
pbShiftState Points to the SHIFTSTATE structure that receives the shift
state.
hDevice Identifies the keyboard that receives the device-control
function. The handle must have been created previously by
using the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
The shift state is set by incoming keystrokes. It can also be set by using
the KBD_SETSHIFTSTATE function (0x0004, 0x0053).
o
Topic: KBD_PEEKCHAR 0x0075 // Not Supported
APIRET DosDevIOCtl( pkkiBuffer, pusStatus, 0x0075, KBD_IOCTL_CATEGORY, hDevice )
PKBDKEYINFO pkkiBuffer; /* pointer to structure for keystroke */
PUSHORT pusStatus; /* pointer to variable for status */
HFILE hDevice; /* device handle */
The KBD_PEEKCHAR function retrieves one character data record from the head
of the keyboard-input buffer of the screen group of the active process. The
character data record is not removed from the keyboard-input buffer.
Parameter Description
----------------------------------------------------------------------------
pkkiBuffer Points to the KBDKEYINFO structure that contains keyboard
input.
pusStatus Points to the variable that receives the keyboard status. It can
be one or both of the following values:
Value Meaning
----------------------------------------------------------------
KBD_DATA_RECEIVED Character data record is retrieved. If not
set, no character data was retrieved.
KBD_DATA_BINARY Input mode is binary. If not set, input mode
is ASCII.
hDevice Identifies the keyboard that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
If the shift-reporting input mode is enabled, the keystroke information
retrieved may specify only a shift-state change and no character input.
o
Topic: KBD_READCHAR 0x0074 // Not Supported
APIRET DosDevIOCtl( pkkiBuffer, pcRecords, 0x0074, KBD_IOCTL_CATEGORY, hDevice )
PKBDKEYINFO pkkiBuffer; /* pointer to structure for keystrokes */
PUSHORT pcRecords; /* pointer to variable for record count */
HFILE hDevice; /* device handle */
The KBD_READCHAR function retrieves one or more character data records from
the keyboard-input buffer for the screen group of the active process.
Parameter Description
----------------------------------------------------------------------------
pkkiBuffer Points to the structure that receives the character data
records. The structure must be at least as large as the size of
an individual record multiplied by the requested number of
records to be read.
pcRecords Points to the variable that contains the number of records to be
read. When the function returns, it copies the actual number of
records retrieved to the variable.
hDevice Identifies the keyboard that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
This function copies the records to the buffer pointed to by the pkkiBuffer
parameter. The variable pointed to by the pcRecords parameter specifies the
number of records to copy. The function can copy up to 16 characters.
If the variable pointed to by pcRecords is KBD_READ_WAIT, the function waits
for the requested number of keystrokes; it blocks the calling process until
all records have been read. If the variable is KBD_READ_NOWAIT, the function
retrieves any available records (up to the specified number) and returns
immediately. When the function returns, it copies the actual number of
records retrieved to the variable. It sets the sign bit to 0 if the input
mode is ASCII; it sets the sign bit to 1 (0x8000) if the input mode is
binary.
o
Topic: KBD_SETFGNDSCREENGRP 0x0055 // Not Supported
APIRET DosDevIOCtl( 0L, pusScreenGrp, 0x0055, KBD_IOCTL_CATEGORY, hDevice )
PUSHORT pusScreenGrp; /* pointer to structure with screen group */
HFILE hDevice; /* device handle */
The KBD_SETFGNDSCREENGRP function sets the new foreground screen group. When
the keyboard switches to the new screen group, it switches to the shift
state, input buffer, and monitor chain defined for that screen group.
This function is reserved for the session manager.
Parameter Description
----------------------------------------------------------------------------
pusScreenGrp Points to the SCREENGROUP structure that contains the
screen-group identifier of the new foreground screen group.
hDevice Identifies the keyboard that receives the device-control
function. The handle must have been created previously by
using the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: KBD_SETFOCUS 0x0057 // Not Supported
APIRET DosDevIOCtl( 0L, phkbd, 0x0057, KBD_IOCTL_CATEGORY, hDevice )
PHKBD phkbd; /* pointer to logical keyboard handle */
HFILE hDevice; /* device handle */
The KBD_SETFOCUS function sets the keyboard focus to the specified logical
keyboard.
Parameter Description
----------------------------------------------------------------------------
phkbd Points to the logical keyboard handle. The handle must have been
created previously by using the KbdOpen function.
hDevice Identifies the keyboard that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: KBD_SETINPUTMODE 0x0051 // Supported, mostly
APIRET DosDevIOCtl( 0L, pbInputMode, 0x0051, KBD_IOCTL_CATEGORY, hDevice )
PBYTE pbInputMode; /* pointer to variable with input mode */
HFILE hDevice; /* device handle */
The KBD_SETINPUTMODE function sets the input and shift-report modes for the
keyboard device driver. The input mode defines whether the following input
keys are processed as keystrokes or as commands: CTRL+C, CTRL+BREAK, CTRL+S,
CTRL+P, SCROLL LOCK, PRTSC.
The shift-report mode defines whether the shift keys are processed as shift
keys or as keystrokes.
Parameter Description
----------------------------------------------------------------------------
pbInputMode Points to the variable that contains the input mode for the
keyboard. If the variable is ASCII_MODE, the input mode is
ASCII. If the variable is BINARY_MODE, the input mode is
binary. If these values are combined with SHIFT_REPORT_MODE,
the function enables the shift-report mode; otherwise, the
shift-report mode is disabled.
hDevice Identifies the keyboard that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
The default input mode is ASCII. The keyboard device driver maintains an
input mode for each screen group.
o
Topic: KBD_SETINTERIMFLAG 0x0052 // Not Supported
APIRET DosDevIOCtl( 0L, pfFlags, 0x0052, KBD_IOCTL_CATEGORY, hDevice )
PBYTE pfFlags; /* pointer to variable with flags */
HFILE hDevice; /* device handle */
The KBD_SETINTERIMFLAG function sets the interim character flags.
Parameter Description
----------------------------------------------------------------------------
pfFlags Points to the variable that contains the interim flags. If the
variable is 0x0020, the program requested conversion. If the
variable is 0x0080, the interim character flag is set.
hDevice Identifies the keyboard that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
The keyboard device driver maintains the interim character flags for each
screen group and passes the interim character flags (with each character
data record) to the keyboard monitors. The interim character flags set by
this function are not the same as the interim character flags in a character
data record.
o
Topic: KBD_SETKCB 0x0058 // Not Supported
APIRET DosDevIOCtl( 0L, phKbd, 0x0058, KBD_IOCTL_CATEGORY, hDevice )
PHKBD phKbd; /* logical-keyboard handle */
HFILE hDevice; /* device handle */
The KBD_SETKCB function binds the specified logical keyboard (KCB) to the
physical keyboard for this session.
Parameter Description
----------------------------------------------------------------------------
phKbd Points to the handle that identifies the logical keyboard.
hDevice Identifies the keyboard that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: KBD_SETNLS 0x005C // Not Supported
APIRET DosDevIOCtl( 0L, pbCodePage, 0x005C, KBD_IOCTL_CATEGORY, hDevice )
PBYTE pbCodePage; /* pointer to structure with code-page info */
HFILE hDevice; /* device handle */
The KBD_SETNLS function installs one of two possible code pages into the
device driver and updates entry number one or number two of the code-page
control block. Entry zero is the device-driver resident code page.
Parameter Description
----------------------------------------------------------------------------
pbCodePage Points to the CODEPAGEINFO structure that specifies the
translation table and code page to be set.
hDevice Identifies the keyboard that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
This function is similar to KBD_SETTRANSTABLE (0x0004,0x0050) except it
updates different entries in the code-page control block.
o
Topic: KBD_SETSESMGRHOTKEY 0x0056 // Not Supported
APIRET DosDevIOCtl( 0L, pbHotKey, 0x0056, KBD_IOCTL_CATEGORY, hDevice )
PBYTE pbHotKey; /* pointer to structure with hot key */
HFILE hDevice; /* device handle */
The KBD_SETSESMGRHOTKEY function sets the session-manager hot keys. A new
hot key applies to all screen groups. The session manager can define up to
16 hot keys.
Parameter Description
----------------------------------------------------------------------------
pbHotKey Points to the HOTKEY structure that contains the hot-key
information.
hDevice Identifies the keyboard that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
The KBD_SETSESMGRHOTKEY function is successful only if it is performed by
the process that initially called the KBD_SETFGNDSCREENGRP function (0x0004,
0x0055).
A hot key can be specified as a combination of shift flags and scan codes,
including key combinations such as ALT+ESC. The system detects the hot key
when the specified scan code is received. If a hot key has already been
defined for a given hot-key identifier, specifying the identifier again
replaces the previous definition.
o
Topic: KBD_SETSHIFTSTATE 0x0053 // Supported
APIRET DosDevIOCtl( 0L, pbShiftState, 0x0053, KBD_IOCTL_CATEGORY, hDevice )
PBYTE pbShiftState; /* pointer to structure with shift state */
HFILE hDevice; /* device handle */
The KBD_SETSHIFTSTATE function sets the shift state for the default keyboard
in the current screen group. The shift state identifies whether the SHIFT,
CONTROL, ALT, INSERT, and SYSREQ keys are up or down and whether the SCROLL
LOCK, NUMLOCK, CAPSLOCK, and INSERT modes are on.
Parameter Description
----------------------------------------------------------------------------
pbShiftState Points to the SHIFTSTATE structure that contains the shift
state.
hDevice Identifies the keyboard that receives the device-control
function. The handle must have been created previously by
using the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
The system puts the shift state into the character data record built for
each incoming keystroke; the shift state then can be used to interpret the
meaning of keystrokes. The function sets the shift state to the specified
state regardless of the state of the actual keys. The shift remains as set
until the user presses or releases the corresponding key.
The keyboard device driver maintains a shift state for each screen group.
o
Topic: KBD_SETTRANSTABLE 0x0050 // Not Supported
APIRET DosDevIOCtl( 0L, pbTransTable, 0x0050, KBD_IOCTL_CATEGORY, hDevice )
PBYTE pbTransTable; /* pointer to translation table */
HFILE hDevice; /* device handle */
The KBD_SETTRANSTABLE function passes a new translation table to the
keyboard translation function. The new table, which overlays the current
table, translates subsequent keystrokes.
Parameter Description
----------------------------------------------------------------------------
pbTransTable Points to the translation table.
hDevice Identifies the keyboard that receives the device-control
function. The handle must have been created previously by
using the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
The default translation table is United States English.
o
Topic: KBD_SETTYPAMATICRATE 0x0054 // Supported
APIRET DosDevIOCtl( 0L, pusRateDelay, 0x0054, KBD_IOCTL_CATEGORY, hDevice )
PUSHORT pusRateDelay; /* structure with typamatic rate and delay */
HFILE hDevice; /* device handle */
The KBD_SETTYPAMATICRATE function sets the keyboard typamatic rate and
delay.
Parameter Description
----------------------------------------------------------------------------
pusRateDelay Points to the RATEDELAY structure that contains the typamatic
rate and delay.
hDevice Identifies the keyboard that receives the device-control
function. The handle must have been created previously by
using the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: KBD_XLATESCAN 0x0079 // Not Supported
APIRET DosDevIOCtl( pkbxl, pidCodePage, 0x0079, KBD_IOCTL_CATEGORY, hDevice )
PKBDXLATE pkbxl; /* pointer to structure for scan code */
PBYTE pidCodePage; /* pointer to code page for translation */
HFILE hDevice; /* device handle */
The KBD_XLATESCAN function translates a scan code in a character data record
to an ASCII character.
Parameter Description
----------------------------------------------------------------------------
pkbxl Points to the KBDTRANS structure that contains the scan code to
translate. It also receives the character value when the
function returns.
pidCodePage Points to a code-page identifier that specifies which code page
to use for the translation. The code-page identifier can be one
of the following values:
Number Code page
---------------------------------------------------------------
437 United States
850 Multilingual
860 Portuguese
863 French-Canadian
865 Nordic
hDevice Identifies the keyboard that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
You may specify a code page to use for translation. Otherwise, the code page
of the active keyboard is used. On entry, the KBDTRANS structure specifies
the code page to use for translation.
o
Topic: MON_IOCTL_CATEGORY 0x000A // Not Supported
Topic: MON_REGISTERMONITOR 0x0040 // Not Supported
APIRET DosDevIOCtl( pusInfo, pbCommand, 0x0040, MON_IOCTL_CATEGORY, hDevice )
PUSHORT pusInfo; /* pointer to structure with monitor-register info */
PBYTE pbCommand; /* pointer to command */
HFILE hDevice; /* device handle */
The MON_REGISTERMONITOR function registers a monitor.
Parameter Description
----------------------------------------------------------------------------
pusInfo Points to the MONITORPOSITION structure that contains the
monitor-registration information.
pbCommand Points to the variable that contains a reserved value. The value
must be zero.
hDevice Identifies the device that receives the device-control function.
The handle must have been created previously by using the
DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: MOU_IOCTL_CATEGORY 0x0007 // Not Supported
Topic: MOU_ALLOWPTRDRAW 0x0050 // Not Supported
APIRET DosDevIOCtl( 0L, 0L, 0x0050, MOU_IOCTL_CATEGORY, hDevice )
HFILE hDevice; /* device handle */
The MOU_ALLOWPTRDRAW function notifies the mouse device driver that the
screen group has been switched and that the pointer can now be drawn.
Parameter Description
----------------------------------------------------------------------------
hDevice Identifies the pointing device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: MOU_DRAWPTR 0x0057 // Not Supported
APIRET DosDevIOCtl( 0L, 0L, 0x0057, MOU_IOCTL_CATEGORY, hDevice )
HFILE hDevice; /* device handle */
The MOU_DRAWPTR function removes the current exclusion rectangle, allowing
the pointer to be drawn anywhere on the screen. If an exclusion rectangle
has been declared for the screen group, that rectangle is released and the
pointer position is checked. If the pointer was in the released rectangle,
it is drawn. If the pointer was not in the released rectangle, the
pointer-draw operation occurs.
Parameter Description
----------------------------------------------------------------------------
hDevice Identifies the pointing device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: MOU_DISPLAYMODECHANGE 0x005D // Not Supported
APIRET DosDevIOCtl( 0L, 0L, 0x005D, MOU_IOCTL_CATEGORY, hDevice )
HFILE hDevice; /* device handle */
The MOU_DISPLAYMODECHANGE function notifies the mouse device driver that a
display-mode change is complete.
Parameter Description
----------------------------------------------------------------------------
hDevice Identifies the pointing device that receives the device-control
function. This handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful. Otherwise, it is an
error value.
Comments
The MOU_DISPLAYMODECHANGE function notifies the mouse that a mode switch is
complete and that drawing is allowed. The pointer is redrawn if it was
hidden when the mode switch began.
o
Topic: MOU_GETBUTTONCOUNT 0x0060 // Not Supported
APIRET DosDevIOCtl( pusCount, 0L, 0x0060, MOU_IOCTL_CATEGORY, hDevice )
PUSHORT pusCount; /* pointer to variable for button count */
HFILE hDevice; /* device handle */
The MOU_GETBUTTONCOUNT function retrieves a count of the number of mouse
buttons.
Parameter Description
----------------------------------------------------------------------------
pusCount Points to the variable that receives the count mouse buttons.
hDevice Identifies the pointing device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: MOU_GETEVENTMASK 0x0065 // Not Supported
APIRET DosDevIOCtl( pfEvents, 0L, 0x0065, MOU_IOCTL_CATEGORY, hDevice )
PUSHORT pfEvents; /* pointer to variable for event mask */
HFILE hDevice; /* device handle */
The MOU_GETEVENTMASK function retrieves the event mask of the current
pointing device.
Parameter Description
----------------------------------------------------------------------------
pfEvents Points to the variable that receives the event mask. This
variable can be a combination of the following values:
Value Meaning
-----------------------------------------------------------------
MOUSE_MOTION Motion; no buttons pressed.
MOUSE_MOTION_WITH_BN1_DOWN Motion with button 1 pressed.
MOUSE_BN1_DOWN Button 1 pressed.
MOUSE_MOTION_WITH_BN2_DOWN Motion with button 2 pressed.
MOUSE_BN2_DOWN Button 2 pressed.
MOUSE_MOTION_WITH_BN3_DOWN Motion with button 3 pressed.
MOUSE_BN3_DOWN Button 3 pressed.
hDevice Identifies the pointing device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: MOU_GETHOTKEYBUTTON 0x0069 // Not Supported
APIRET DosDevIOCtl( pfHotKey, 0L, 0x0069, MOU_IOCTL_CATEGORY, hDevice )
PUSHORT pfHotKey; /* pointer to variable for hot key */
HFILE hDevice; /* device handle */
The MOU_GETHOTKEYBUTTON function retrieves the mouse-button equivalent for
the system hot key.
Parameter Description
----------------------------------------------------------------------------
pfHotKey Points to the variable that receives the hot key. This variable
can be one or more of the following values:
Value Meaning
-----------------------------------------------------------------
MHK_NO_HOTKEY No system hot key used.
MHK_BUTTON1 Button 1 is system hot key.
MHK_BUTTON2 Button 2 is system hot key.
MHK_BUTTON3 Button 3 is system hot key.
If 0x0001 is specified, no system hot-key support is provided. If
multiple values are given (excluding 0x0001) the system hot key
requires that the indicated buttons be pressed simultaneously.
hDevice Identifies the pointing device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: MOU_GETMICKEYCOUNT 0x0061 // Not Supported
APIRET DosDevIOCtl( pcMickeys, 0L, 0x0061, MOU_IOCTL_CATEGORY, hDevice )
PUSHORT pcMickeys; /* pointer to variable for mickeys */
HFILE hDevice; /* device handle */
The MOU_GETMICKEYCOUNT function retrieves the count of mickeys per
centimeter for a given pointing device.
Parameter Description
----------------------------------------------------------------------------
pcMickeys Points to the variable that receives the number of mickeys per
centimeter. The number can be any value from 0 through 32,767.
hDevice Identifies the pointing device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: MOU_GETMOUSTATUS 0x0062 // Not Supported
APIRET DosDevIOCtl( pfStatus, 0L, 0x0062, MOU_IOCTL_CATEGORY, hDevice )
PUSHORT pfStatus; /* pointer to variable for status flags */
HFILE hDevice; /* device handle */
The MOU_GETMOUSTATUS function retrieves the current status flags of the
mouse device driver.
Parameter Description
----------------------------------------------------------------------------
pfStatus Points to the variable that receives the status flags. This
variable can be a combination of the following values:
Value Meaning
-----------------------------------------------------------------
MOUSE_QUEUEBUSY Event queue is busy with I/O.
MOUSE_BLOCKREAD Block read is in progress.
MOUSE_FLUSH Flush is in progress.
MOUSE_UNSUPPORTED_MODE Pointer-draw routine is disabled (device
in unsupported mode).
MOUSE_DISABLED Interrupt-level pointer-draw routine is
not called.
MOUSE_MICKEYS Mouse data is returned in mickeys (not
pels).
hDevice Identifies the pointing device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: MOU_GETPTRPOS 0x0067 // Not Supported
APIRET DosDevIOCtl( pplPosition, 0L, 0x0067, MOU_IOCTL_CATEGORY, hDevice )
PPTRLOC pplPosition; /* pointer to structure for position */
HFILE hDevice; /* device handle */
The MOU_GETPTRPOS function retrieves the position of the current screen's
pointer.
Parameter Description
----------------------------------------------------------------------------
pplPosition Points to the PTRLOC structure that receives the new pointer
position.
hDevice Identifies the pointing device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
The coordinate values depend on the display mode. If the display is in text
mode, character-position values are used. If the display is in graphics
mode, pel values are used.
o
Topic: MOU_GETPTRSHAPE 0x0068 // Not Supported
APIRET DosDevIOCtl( pbBuffer, ppsShape, 0x0068, MOU_IOCTL_CATEGORY, hDevice )
PBYTE pbBuffer; /* pointer to buffer for pointer masks */
PPTRSHAPE ppsShape; /* pointer to structure for shape information */
HFILE hDevice; /* device handle */
The MOU_GETPTRSHAPE function retrieves the current pointer shape.
Parameter Description
----------------------------------------------------------------------------
pbBuffer Points to the buffer that receives the pointer shape. The image
format depends on the mode of the display. For currently
supported modes, the buffer always consists of the AND image data
followed by the XOR image data. The buffer always describes one
display plane.
ppsShape Points to the PTRSHAPE structure that receives the pointer
information and shape.
hDevice Identifies the pointing device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The function exits in a normal state if the input pointer-image buffer is
large enough to store the pointer image. The current pointer information is
returned in the pointer-data record, and the pointer-image data is copied
into the data-packet buffer.
An "invalid buffer size" error occurs if the input pointer-image buffer is
smaller than the amount of storage necessary for copying the data. The
buffer length returned will be minimum value.
Comments
The parameter values are in the same mode as the current screen-group
display mode. For text mode, these are character values; for graphics mode,
these are pel values.
On input, the only field in the pointer-definition record used by the mouse
device driver is the length of the pointer-image buffer.
o
Topic: MOU_GETQUESTATUS 0x0064 // Not Supported
APIRET DosDevIOCtl( pmqiStatus, 0L, 0x0064, MOU_IOCTL_CATEGORY, hDevice )
PMOUQUEINFO pmqiStatus; /* pointer to structure for queue status */
HFILE hDevice; /* device handle */
The MOU_GETQUESTATUS function retrieves the number of elements in the event
queue and the maximum number of elements allowed in an event queue.
Parameter Description
----------------------------------------------------------------------------
pmqiStatus Points to the MOUQUEINFO structure that receives the queue
status.
hDevice Identifies the pointing device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: MOU_GETSCALEFACTORS 0x0066 // Not Supported
APIRET DosDevIOCtl( psfFactors, 0L, 0x0066, MOU_IOCTL_CATEGORY, hDevice )
PSCALEFACT psfFactors; /* pointer to structure for scaling factors */
HFILE hDevice; /* device handle */
The MOU_GETSCALEFACTORS function retrieves the scaling factors of the
current pointing device. Scaling factors are the ratio values that determine
how much relative movement is necessary before the mouse device driver
reports a pointing-device event. In graphics mode, this ratio is given in
mickeys-per-pel. In text mode, this ratio is given in mickeys-per-character.
The default values are one mickey-per-row and one mickey-per-column.
Parameter Description
----------------------------------------------------------------------------
psfFactors Points to the SCALEFACT structure that receives the scaling
factors.
hDevice Identifies the pointing device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: MOU_READEVENTQUE 0x0063 // Not Supported
APIRET DosDevIOCtl( pmeiEvent, pfWait, 0x0063, MOU_IOCTL_CATEGORY, hDevice )
PMOUEVENTINFO pmeiEvent; /* pointer to structure for event information */
PUSHORT pfWait; /* pointer to wait/no-wait flag */
HFILE hDevice; /* device handle */
The MOU_READEVENTQUE function reads the event queue for the pointing
device.
Parameter Description
----------------------------------------------------------------------------
pmeiEvent Points to the MOUEVENTINFO structure that receives event-queue
information.
pfWait Points to the variable that specifies how to read from the queue
if no event is available. If the variable is WAIT, the function
returns immediately without an event. If the variable is NOWAIT,
the function waits until an event is available.
hDevice Identifies the pointing device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: MOU_REMOVEPTR 0x0058 // Not Supported
APIRET DosDevIOCtl( 0L, pnprBuffer, 0x0058, MOU_IOCTL_CATEGORY, hDevice )
PNOPTRRECT pnprBuffer; /* points to structure with exclusion rectangle */
HFILE hDevice; /* device handle */
The MOU_REMOVEPTR function specifies the exclusion rectangle to be used by
the device driver. The exclusion rectangle specifies an area on the screen
where the pointer-draw routine cannot draw the pointer.
Parameter Description
----------------------------------------------------------------------------
pnprBuffer Points to the NOPTRRECT structure that contains the dimensions
of the exclusion rectangle.
hDevice Identifies the pointing device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
The pointer is not drawn in the exclusion rectangle until a different area
is specified by another call of this function.
If the exclusion rectangle is defined as the entire screen, pointer-draw
operations are disabled for the entire screen group.
o
Topic: MOU_SCREENSWITCH 0x0052 // Not Supported
APIRET DosDevIOCtl( 0L, pbNotify, 0x0052, MOU_IOCTL_CATEGORY, hDevice )
PBYTE pbNotify; /* pointer to structure with screen group */
HFILE hDevice; /* device handle */
The MOU_SCREENSWITCH function notifies the mouse device driver that the
screen group is about to be switched, and then sets a system pointer-draw
enable/disable flag. Any pointer drawing is locked until the flag is cleared
by using the MOU_ALLOWPTRDRAW function (0x0007, 0x0050).
Parameter Description
----------------------------------------------------------------------------
pbNotify Points to the SCREENGROUP structure that contains the
notification type and screen-group identifier.
hDevice Identifies the pointing device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: MOU_SETEVENTMASK 0x0054 // Not Supported
APIRET DosDevIOCtl( 0L, pfEvent, 0x0054, MOU_IOCTL_CATEGORY, hDevice )
PUSHORT pfEvent; /* pointer to variable for event mask */
HFILE hDevice; /* device handle */
The MOU_SETEVENTMASK function sets the event mask of the pointing device.
Parameter Description
----------------------------------------------------------------------------
pfEvent Points to the variable that contains the event mask. This
variable can be a combination of the following values:
Value Meaning
-----------------------------------------------------------------
MOUSE_MOTION Motion; no buttons pressed.
MOUSE_MOTION_WITH_BN1_DOWN Motion with button 1 pressed.
MOUSE_BN1_DOWN Button 1 pressed.
MOUSE_MOTION_WITH_BN2_DOWN Motion with button 2 pressed.
MOUSE_BN2_DOWN Button 2 pressed.
MOUSE_MOTION_WITH_BN3_DOWN Motion with button 3 pressed.
MOUSE_BN3_DOWN Button 3 pressed.
hDevice Identifies the pointing device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: MOU_SETHOTKEYBUTTON 0x0055 // Not Supported
APIRET DosDevIOCtl( 0L, pfHotKey, 0x0055, MOU_IOCTL_CATEGORY, hDevice )
PUSHORT pfHotKey; /* pointer to variable with hot key */
HFILE hDevice; /* device handle */
The MOU_SETHOTKEYBUTTON function sets the mouse-button equivalent for the
system hot key.
Parameter Description
----------------------------------------------------------------------------
pfHotKey Points to the variable that specifies the hot key. This variable
can be a combination of the following values:
Value Meaning
-----------------------------------------------------------------
MHK_NO_HOTKEY No system hot key used.
MHK_BUTTON1 Button 1 is system hot key.
MHK_BUTTON2 Button 2 is system hot key.
MHK_BUTTON3 Button 3 is system hot key.
If 0x0001 is specified, no system hot-key support is provided. If
multiple values are given (excluding 0x0001), the system hot key
requires that the indicated buttons be pressed simultaneously.
hDevice Identifies the pointing device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
This function can be called only by the process that initially issues it and
should be used only by the command shell.
o
Topic: MOU_SETMOUSTATUS 0x005C // Not Supported
APIRET DosDevIOCtl( 0L, pfStatus, 0x005C, MOU_IOCTL_CATEGORY, hDevice )
PUSHORT pfStatus; /* pointer to variable with status */
HFILE hDevice; /* device handle */
The MOU_SETMOUSTATUS function sets a subset of the current mouse
device-driver status flags.
Parameter Description
----------------------------------------------------------------------------
pfStatus Points to the variable that contains the status flags for the
pointing device. If the variable contains MOUSE_DISABLED, the
interrupt-level pointer-draw routine is not called. If the
variable contains MOUSE_MICKEYS, mouse data is returned in
mickeys (not pels).
hDevice Identifies the pointing device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: MOU_SETPROTDRAWADDRESS 0x005A // Not Supported
APIRET DosDevIOCtl( pbDrawData, pbFunction, 0x005A, MOU_IOCTL_CATEGORY, hDevice )
PBYTE pbDrawData; /* pointer to drawing data */
PBYTE pbFunction; /* pointer to structure with drawing function */
HFILE hDevice; /* device handle */
The MOU_SETPROTDRAWADDRESS function notifies the mouse device driver of the
address of a protected-mode pointer-draw function. This function is valid
for protected mode only.
Parameter Description
----------------------------------------------------------------------------
pbDrawData Points to the PTRDRAWDATA structure.
pbFunction Points to the PTRDRAWFUNCTION structure that contains the
address of the pointer-draw function.
hDevice Identifies the pointing device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
The pointer-draw routine is an installed, pseudo-character device driver.
The mouse handler must do the following:
o Open the pointer-draw device driver.
o Query the pointer-draw device driver for the address of its entry point.
o Pass the resulting address of the pointer-draw entry point to the mouse
device driver that uses this function.
o
Topic: MOU_SETPTRPOS 0x0059 // Not Supported
APIRET DosDevIOCtl( 0L, pplPosition, 0x0059, MOU_IOCTL_CATEGORY, hDevice )
PPTRLOC pplPosition; /* pointer to structure with pointer position */
HFILE hDevice; /* device handle */
The MOU_SETPTRPOS function sets a new screen position for the pointer
image.
Parameter Description
----------------------------------------------------------------------------
pplPosition Points to the PTRLOC structure that contains the new position
for the pointer.
hDevice Identifies the pointing device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
The coordinate values depend on the display mode. If the display is in text
mode, character-position values are used. If the display is in graphics
mode, pel values are used.
This function has no effect on the current exclusion-rectangle definitions.
If a pointer image is already defined for the screen group, it is replaced
by the new pointer image.
If the pointer image is directed into an existing exclusion rectangle, it
remains hidden (invisible) until sufficient movement places the pointer
outside the exclusion rectangle or until the exclusion rectangle is
released.
o
Topic: MOU_SETPTRSHAPE 0x0056 // Not Supported
APIRET DosDevIOCtl( pbBuffer, ppsShape, 0x0056, MOU_IOCTL_CATEGORY, hDevice )
PBYTE pbBuffer; /* pointer to structure with shape masks */
PPTRSHAPE ppsShape; /* pointer to structure with shape information */
HFILE hDevice; /* device handle */
The MOU_SETPTRSHAPE function sets the pointer shape.
Parameter Description
----------------------------------------------------------------------------
pbBuffer Points to the buffer that contains the pointer image. The image
format depends on the mode of the display. For currently
supported modes, the buffer always consists of the AND image
data, followed by the XOR image data. The buffer always describes
one display plane.
ppsShape Points to the PTRSHAPE structure that receives the pointer
information and shape.
hDevice Identifies the pointing device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
The parameter values must be in the same mode as the current screen-group
display mode. For text mode, these must be character values; for graphics
mode, these must be pel values.
o
Topic: MOU_SETREALDRAWADDRESS 0x005B // Not Supported
APIRET DosDevIOCtl( pvConfig, pbFunction, 0x005B, MOU_IOCTL_CATEGORY, hDevice )
PVOID pvConfig; /* pointer to configuration structure */
PBYTE pbFunction; /* pointer to structure with function */
HFILE hDevice; /* device handle */
The MOU_SETREALDRAWADDRESS function notifies the real-mode mouse device
driver of the entry point of a real-mode pointer-draw routine. This function
is intended for use by Session Manager at the end of system initialization
and is valid for real mode only.
Parameter Description
----------------------------------------------------------------------------
pvConfig Points to the VIOCONFIGINFO structure that contains information
about configuration of the default display.
pbFunction Points to the PTRDRAWFUNCTION structure that contains the
address of the pointer-draw function.
hDevice Identifies the pointing device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: MOU_SETSCALEFACTORS 0x0053 // Not Supported
APIRET DosDevIOCtl( 0L, psfFactors, 0x0053, MOU_IOCTL_CATEGORY, hDevice )
PSCALEFACT psfFactors; /* pointer to structure with factors */
HFILE hDevice; /* device handle */
The MOU_SETSCALEFACTORS function reassigns the scaling factors of the
current pointing device. Scaling factors are ratio values that determine how
much relative movement is necessary before the mouse device driver reports a
pointing-device event. In graphics mode, the ratio is given in
mickeys-per-pel. In text mode, the ratio is given in mickeys-per-character.
The default ratio values are one mickey-per-row and one mickey-per-column.
Parameter Description
----------------------------------------------------------------------------
psfFactors Points to the SCALEFACT structure that contains the scale
factors.
hDevice Identifies the pointing device that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: MOU_UPDATEDISPLAYMODE 0x0051 // Not Supported
APIRET DosDevIOCtl( pvConfigInfo, pviomi, 0x0051, MOU_IOCTL_CATEGORY, hDevice )
PVOID pvConfigInfo; /* pointer to structure with configuration info */
PVIOMODEINFO pviomi; /* pointer to structure with screen mode */
HFILE hDevice; /* device handle */
The MOU_UPDATEDISPLAYMODE function notifies the mouse device driver that the
display mode has been modified.
Parameter Description
----------------------------------------------------------------------------
pvConfigInfo Points to the VIOCONFIGINFO structure that contains the
current display-configuration information.
pviomi Points to the VIOMODEINFO structure that contains the
display-mode information.
hDevice Identifies the pointing device that receives the
device-control function. This handle must have been created
previously by using the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
When the video I/O subsystem or registered video I/O subsystem sets the
display mode, it must notify the mouse device driver prior to switching
display modes, in order to synchronize the mouse device driver's functions
that update the pointer.
o
Topic: MOU_VER 0x006A // Supported (?????)
APIRET DosDevIOCtl( pusVersion, 0L, 0x006A, MOU_IOCTL_CATEGORY, hDevice )
PUSHORT pusVersion; /* pointer to version number */
HFILE hDevice; /* device handle */
The MOU_VER function returns the version number of the mouse driver.
Parameter Description
----------------------------------------------------------------------------
pusVersion Points to a data area in which the version number of the mouse
driver is returned.
hDevice Identifies the pointing device that receives the device-control
function. This handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful. Otherwise, it is an
error value.
Comments
The MOU_VER function returns 0x0001 as the version number of the mouse
driver to indicate that the following features are supported. These features
are new for MS OS/2, version 1.2.
Function Change
----------------------------------------------------------------------------
MOU_DISPLAYMODECHANGE New IOCtl function.
MOU_SETPROTDRAWADDRESS New pbDrawData parameter.
MOU_SETREALDRAWADDRESS New pvConfig parameter.
MOU_UPDATEDISPLAYMODE New pvConfigInfo parameter.
MOU_UPDATEDISPLAYMODE Size of VIOMODEINFO structure increased from 12 to
34 bytes.
MOU_VER New IOCtl function.
The MOU_VER function should be used to determine the version number of the
mouse device driver before any of these features are used, in order to
maintain compatibility with earlier versions of MS OS/2.
o
Topic: PDSK_IOCTL_CATEGORY 0x0009 // Supported
Topic: PDSK_GETPHYSDEVICEPARAMS 0x0063 // Supported (?????)
APIRET DosDevIOCtl( pbBlock, pbCommand, 0x0063, PDSK_IOCTL_CATEGORY, hDevice )
PBYTE pbBlock; /* pointer to structure for device parameters */
PBYTE pbCommand; /* pointer to variable with command */
HFILE hDevice; /* device handle */
The PDSK_GETPHYSDEVICEPARAMS function retrieves the device parameters for a
physical device. The retrieved parameters apply to the entire physical
disk.
Parameter Description
----------------------------------------------------------------------------
pbBlock Points to the DEVICEPARAMETERBLOCK structure that receives the
device parameters.
pbCommand Points to the variable that contains a reserved value. The value
must be zero.
hDevice Identifies the physical device that receives the device-control
function. The handle must have been created previously by using
the DosPhysicalDisk function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: PDSK_LOCKPHYSDRIVE 0x0000 // Supported (?????)
APIRET DosDevIOCtl( 0L, pbCommand, 0x0000, PDSK_IOCTL_CATEGORY, hDevice )
PBYTE pbCommand; /* pointer to variable with command */
HFILE hDevice; /* device handle */
The PDSK_LOCKPHYSDRIVE function locks the physical drive and any of its
associated logical units.
Parameter Description
----------------------------------------------------------------------------
pbCommand Points to the variable that contains a reserved value. The value
must be zero.
hDevice Identifies the disk-drive device that receives the device-control
function. The handle must have been created previously by using
the DosPhysicalDisk function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: PDSK_READPHYSTRACK 0x0064 // Supported
APIRET DosDevIOCtl( pbBuffer, pbCommand, 0x0064, PDSK_IOCTL_CATEGORY, hDevice )
PBYTE pbBuffer; /* pointer to structure for data */
PBYTE pbCommand; /* pointer to structure with command */
HFILE hDevice; /* device handle */
The PDSK_READPHYSTRACK function reads from a physical track on the device
specified in the request.
Parameter Description
----------------------------------------------------------------------------
pbBuffer Points to the buffer that receives the data to be read.
pbCommand Points to the TRACKLAYOUT structure that contains information
about the read operation.
hDevice Identifies the disk drive that receives the device-control
function. The handle must have been created previously by using
the DosPhysicalDisk function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
This function is similar to the DSK_READTRACK function (0x0008, 0x0064)
except that I/O is offset from the beginning of the physical drive instead
of from the unit number.
The track table passed in the function determines the sector number, which
is passed to the disk controller. When the sectors are odd-numbered or
nonconsecutive, the request is broken into an appropriate number of
single-sector operations, and one sector at a time is read.
The device driver will not correctly read sectors of sizes other than 512
bytes if doing so would generate a direct-memory-access (DMA) violation
error.
o
Topic: PDSK_UNLOCKPHYSDRIVE 0x0001 // Supported (?????)
APIRET DosDevIOCtl( 0L, pbCommand, 0x0001, PDSK_IOCTL_CATEGORY, hDevice )
PBYTE pbCommand; /* pointer to variable with command */
HFILE hDevice; /* device handle */
The PDSK_UNLOCKPHYSDRIVE function unlocks the physical disk drive and any of
its associated logical units and also affects the logical units on the
physical disk drive.
Parameter Description
----------------------------------------------------------------------------
pbCommand Points to the variable that contains a reserved value. The value
must be zero.
hDevice Identifies the disk drive that receives the device-control
function. The handle must have been created previously by using
the DosPhysicalDisk function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: PDSK_VERIFYPHYSTRACK 0x0065 // Supported
APIRET DosDevIOCtl( 0L, pbCommand, 0x0065, PDSK_IOCTL_CATEGORY, hDevice )
PBYTE pbCommand; /* pointer to structure with verification data */
HFILE hDevice; /* device handle */
The PDSK_VERIFYPHYSTRACK function verifies I/O on a physical track on the
device specified in the request.
Parameter Description
----------------------------------------------------------------------------
pbCommand Points to the TRACKLAYOUT structure that contains information
about the verify operation.
hDevice Identifies the physical device that receives the device-control
function. The handle must have been created previously by using
the DosPhysicalDisk function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
This function is similar to the DSK_VERIFYTRACK function (0x0008, 0x0065)
except that I/O is offset from the beginning of the physical drive instead
of from the unit number.
The track-layout table passed in the function determines the sector number,
which is passed to the disk controller. When the sectors are odd-numbered or
nonconsecutive, the request is broken into an appropriate number of
single-sector operations, and one sector at a time is verified.
o
Topic: PDSK_WRITEPHYSTRACK 0x0044 // Supported
APIRET DosDevIOCtl( pbBuffer, pbCommand, 0x0044, PDSK_IOCTL_CATEGORY, hDevice )
PBYTE pbBuffer; /* pointer to buffer with data */
PBYTE pbCommand; /* pointer to structure with command */
HFILE hDevice; /* device handle */
The PDSK_WRITEPHYSTRACK function writes to a physical track on the device
specified in the request.
Parameter Description
----------------------------------------------------------------------------
pbBuffer Points to the buffer that contains the data to be written.
pbCommand Points to the TRACKLAYOUT structure that contains information
about the write operation.
hDevice Identifies the disk drive that receives the device-control
function. The handle must have been created previously by using
the DosPhysicalDisk function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
This function is similar to the DSK_WRITETRACK function (0x0008, 0x0044)
except that I/O is offset from the beginning of the physical drive instead
of from the unit number.
The track-layout table passed in this function determines the sector number,
which is passed to the disk controller. When the sectors are odd-numbered or
nonconsecutive, the request is broken into an appropriate number of
single-sector operations, and one sector at a time is written.
o
Topic: PRT_IOCTL_CATEGORY 0x0005 // Not Supported
Topic: PRT_ACTIVATEFONT 0x0048 // Not Supported
APIRET DosDevIOCtl( pbFontInfo, pbCommand, 0x0048, PRT_IOCTL_CATEGORY, hDevice )
PBYTE pbFontInfo; /* pointer to structure for font info */
PBYTE pbCommand; /* pointer to byte with command info */
HFILE hDevice; /* device handle */
The PRT_ACTIVATEFONT function activates a font for printing.
Parameter Description
----------------------------------------------------------------------------
pbFontInfo Points to a FONTINFO structure that specifies the font to
activate.
pbCommand Points to a reserved 8-bit value. The value must be zero.
hDevice Identifies the printer that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: PRT_GETFRAMECTL 0x0062 // Not Supported
APIRET DosDevIOCtl( pbFrameCtl, pbCommand, 0x0062, PRT_IOCTL_CATEGORY, hDevice )
PBYTE pbFrameCtl; /* pointer to structure for frame settings */
PBYTE pbCommand; /* pointer to variable with command */
HFILE hDevice; /* device handle */
The PRT_GETFRAMECTL function retrieves frame-control information for a
printer.
Parameter Description
----------------------------------------------------------------------------
pbFrameCtl Points to the FRAME structure that receives the frame-control
information.
pbCommand Points to the variable that contains a reserved value. The value
must be zero.
hDevice Identifies the printer that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: PRT_GETINFINITERETRY 0x0064 // Not Supported
APIRET DosDevIOCtl( pfRetry, pbCommand, 0x0064, PRT_IOCTL_CATEGORY, hDevice )
PBYTE pfRetry; /* pointer to variable for retry flag */
PBYTE pbCommand; /* pointer to variable with command */
HFILE hDevice; /* device handle */
The PRT_GETINFINITERETRY function retrieves an infinite retry setting for a
printer.
Parameter Description
----------------------------------------------------------------------------
pfRetry Points to the variable that receives the infinite retry setting.
The variable is FALSE if infinite retry is disabled or TRUE if
retry is enabled.
pbCommand Points to the variable that contains a reserved value. The value
must be zero.
hDevice Identifies the printer that receives the device-control function.
The handle must have been created previously by using the
DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: PRT_GETPRINTERSTATUS 0x0066 // Not Supported
APIRET DosDevIOCtl( pfStatus, pbCommand, 0x0066, PRT_IOCTL_CATEGORY, hDevice )
PBYTE pfStatus; /* pointer to printer status flag */
PBYTE pbCommand; /* pointer to variable with command */
HFILE hDevice; /* device handle */
The PRT_GETPRINTERSTATUS function retrieves the status of a printer.
Parameter Description
----------------------------------------------------------------------------
pfStatus Points to the variable that receives the printer status. This
variable can be a combination of the following values:
Value Meaning
-----------------------------------------------------------------
PRINTER_TIMEOUT Time-out occurred.
PRINTER_IO_ERROR I/O error occurred.
PRINTER_SELECTED Printer selected.
PRINTER_OUT_OF_PAPER Printer out of paper.
PRINTER_ACKNOWLEDGED Printer acknowledged.
PRINTER_NOT_BUSY Printer not busy.
pbCommand Points to the variable that contains a reserved value. The value
must be zero.
hDevice Identifies the printer that receives the device-control function.
The handle must have been created previously by using the
DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: PRT_INITPRINTER 0x0046 // Not Supported
APIRET DosDevIOCtl( 0L, pbCommand, 0x0046, PRT_IOCTL_CATEGORY, hDevice )
PBYTE pbCommand; /* command value */
HFILE hDevice; /* device handle */
The PRT_INITPRINTER function initializes a printer.
Parameter Description
----------------------------------------------------------------------------
pbCommand Points to the variable that contains a reserved value. The value
must be zero.
hDevice Identifies the printer that receives the device-control function.
The handle must have been created previously by using the
DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: PRT_QUERYACTIVEFONT 0x0069 // Not Supported
APIRET DosDevIOCtl( pbFontInfo, pbCommand, 0x0069, PRT_IOCTL_CATEGORY, hDevice )
PBYTE pbFontInfo; /* pointer to structure for font information */
PBYTE pbCommand; /* pointer to byte with command information */
HFILE hDevice; /* device handle */
The PRT_QUERYACTIVEFONT function determines which code page and font are
currently active.
Parameter Description
----------------------------------------------------------------------------
pbFontInfo Points to a FONTINFO structure that specifies the active font.
pbCommand Points to a reserved 8-bit value. The value must be zero.
hDevice Identifies the printer that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: PRT_SETFRAMECTL 0x0042 // Not Supported
APIRET DosDevIOCtl( pbFrameCtl, pbCommand, 0x0042, PRT_IOCTL_CATEGORY, hDevice )
PBYTE pbFrameCtl; /* pointer to structure with frame settings */
PBYTE pbCommand; /* pointer to variable with command */
HFILE hDevice; /* device handle */
The PRT_SETFRAMECTL function sets the frame-control information for a
printer.
Parameter Description
----------------------------------------------------------------------------
pbFrameCtl Points to the FRAME structure that contains the frame-control
information.
pbCommand Points to the variable that contains a reserved value. The value
must be zero.
hDevice Identifies the printer that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: PRT_SETINFINITERETRY 0x0044 // Not Supported
APIRET DosDevIOCtl( pfRetry, pbCommand, 0x0044, PRT_IOCTL_CATEGORY, hDevice )
PBYTE pfRetry; /* pointer to retry flag */
PBYTE pbCommand; /* pointer to variable with command */
HFILE hDevice; /* device handle */
The PRT_SETINFINITERETRY function sets infinite retry for a printer.
Parameter Description
----------------------------------------------------------------------------
pfRetry Points to the variable that specifies whether to enable infinite
retry. If the variable is FALSE, the function disables infinite
retry. If the variable is TRUE, the function enables infinite
retry.
pbCommand Points to the variable that contains a reserved value. The value
must be zero.
hDevice Identifies the printer that receives the device-control function.
The handle must have been created previously by using the
DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: PRT_VERIFYFONT 0x006A // Not Supported
APIRET DosDevIOCtl( pbFontInfo, pbCommand, 0x006A, PRT_IOCTL_CATEGORY, hDevice )
PBYTE pbFontInfo; /* points to structure for font info */
PBYTE pbCommand; /* points to byte with command info */
HFILE hDevice; /* device handle */
The PRT_VERIFYFONT function verifies that a particular code page and font
are available for the specified printer.
Parameter Description
----------------------------------------------------------------------------
pbFontInfo Points to the FONTINFO structure that receives information for
the available font.
pbCommand Points to a reserved 8-bit value. The value must be zero.
hDevice Identifies the printer that receives the device-control
function. The handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
o
Topic: PTR_IOCTL_CATEGORY 0x0003 // Not Supported
Topic: PTR_GETPTRDRAWADDRESS 0x0072 // Not Supported
APIRET DosDevIOCtl( pbFunctionInfo, 0L, 0x0072, PTR_IOCTL_CATEGORY, hDevice )
PBYTE pbFunctionInfo; /* pointer to structure for function */
HFILE hDevice; /* device handle */
The PTR_GETPTRDRAWADDRESS function retrieves the entry-point address and
other information for the pointer-draw function (the function that draws the
mouse pointer on the screen).
Parameter Description
----------------------------------------------------------------------------
pbFunctionInfo Points to PTRDRAWADDRESS structure that receives the
function information.
hDevice Identifies the pointing device that receives the
device-control function. The handle must have been created
previously by using the DosOpen function.
Return Value
The return value is zero if the function is successful or an error value if
an error occurs.
Comments
The mouse device driver uses the pointer-draw function to update the pointer
image on the screen, and retrieves the address and saves it to use whenever
the pointer moves.
o
Topic: SCR_IOCTL_CATEGORY 0x0003 // Not Supported
Topic: SCR_ALLOCLDT 0x0070 // Not Supported
APIRET DosDevIOCtl( psel, pvAddrInfo, 0x0070, SCR_IOCTL_CATEGORY, hDevice )
PSEL psel; /* pointer to LDT selector */
PVOID pvAddrInfo; /* pointer to structure with address info */
HFILE hDevice; /* device handle */
The SCR_ALLOCLDT function allocates a logical descriptor table (LDT)
selector for an area of memory.
Parameter Description
----------------------------------------------------------------------------
psel Points to the logical descriptor table selector for the memory
area specified by the LDTADDRINFO structure.
pvAddrInfo Points to the LDTADDRINFO structure that contains the address
and size of memory for which a selector is requested.
hDevice Identifies the screen device that receives the device-control
function. This handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or the error value
ERROR_I24_INVALID_PARAMETER if an error occurs.
Comments
Read/Write access is granted to data areas completely contained in the
address range 0xA0000 through 0xBFFFF. Read-only access is granted to data
areas outside this range, but inside the range 0x00000 through 0xFFFFF.
Attempts to access any address outside this range results in an error.
o
Topic: SCR_ALLOCLDTOFF 0x0075 // Not Supported
APIRET DosDevIOCtl( ppv, pvAddrInfo, 0x0075, SCR_IOCTL_CATEGORY, hDevice )
PVOID FAR * ppv; /* pointer to variable to receive selector:offset */
PVOID pvAddrInfo; /* pointer to structure with address info */
HFILE hDevice; /* device handle */
The SCR_ALLOCLDTOFF function allocates a logical descriptor table (LDT)
selector and offset for an area of memory.
Parameter Description
----------------------------------------------------------------------------
ppv Points to the variable that receives the allocated selector and
offset.
pvAddrInfo Points to the LDTADDRINFO structure that contains the address
and size of memory for which a selector is requested.
hDevice Identifies the screen device that receives the device-control
function. This handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or the error
ERROR_I24_INVALID_PARAMETER if an error occurs.
Comments
Read/Write access is granted to data areas completely contained in the
address range 0xA0000 through 0xBFFFF. Read-only access is granted to data
areas outside this range, but inside the range 0x00000 through 0xFFFFF.
Attempts to access any address outside this range results in an error.
o
Topic: SCR_DEALLOCLDT 0x0071 // Not Supported
APIRET DosDevIOCtl( 0L, psel, 0x0071, SCR_IOCTL_CATEGORY, hDevice )
PSEL psel; /* pointer to LDT selector */
HFILE hDevice; /* device handle */
The SCR_DEALLOCLDT function deallocates a logical descriptor table (LDT)
selector previously allocated by the SCR_ALLOCLDT or SCR_ALLOCLDTOFF
function.
Parameter Description
----------------------------------------------------------------------------
psel Points to the logical descriptor table selector to be
deallocated.
hDevice Identifies the screen device that receives the device-control
function. This handle must have been created previously by using
the DosOpen function.
Return Value
The return value is zero if the function is successful or the error value
ERROR_I24_INVALID_PARAMETER if an error occurs.
o