If a general failure is not returned, the physical device driver immediately
transmits the byte contained in the Parameter Packet subject to the following
conditions:
- If data in the transmit queue is currently being transmitted
or waiting to be transmitted, the character to be transmitted immediately
is placed at the logical front of the physical device driver transmit queue
(not considered in the transmit queue), so that it is the next character
to be given to the transmit hardware. If Automatic Receive Flow Control
is enabled, then an XON or XOFF character can be placed ahead of the character
to be transmitted immediately.
- This request is always completed immediately (before
the character is actually transmitted) even if the character might not be
immediately transmitted. If there already is one character waiting to transmit
immediately (based on a previous request), then a general failure error
is returned. The application must make this request again after there is
no character (waiting to transmit immediately) in the device driver transmit
queue. ASYNC_GETCOMMSTATUS
can be used to determine whether a character is currently waiting to
be transmitted immediately.
- The physical device driver does not immediately transmit
the character (waiting to transmit immediately) if the physical device driver
is not transmitting characters because of modem control signal output handshaking
(see ASYNC_SETDCBINFO) or
if the physical device driver is currently transmitting a break.
- If the physical device driver is not transmitting
characters because of Automatic Transmit or Receive Flow Control (XON/XOFF)
is enabled, or because it was asked to operate as if an XOFF character had
been received (see ASYNC_STOPTRANSMIT),
then the physical device driver still transmits a character that is waiting
to be transmitted immediately due to this request.
Warning: If Automatic Transmit or Receive Flow Control is enabled,
an application may or may not request that the device driver transmit a
character immediately. Otherwise, unexpected results can occur.
- The Transmit Byte Immediate IOCtl is generally used
to manually send XON and XOFF characters.
- The character waiting to be transmitted immediately
is not considered part of the physical device driver transmit queue and
is not flushed as a flush request. XON/XOFF characters that are automatically
transmitted as the result of Automatic Receive Flow Control might be placed
ahead of the character waiting to be transmitted immediately. Applications
should not have dependencies on this ordering.
- If the serial port controller fully supports Extended
Hardware Buffering capabilities and the physical device driver is set with
Extended Hardware Buffering enabled, then calling this function results
in temporarily setting the Transmit Buffer Load Count to 1 (to load the
transmit immediate byte). If the physical device driver conditions allow
data to be transmitted, then the byte is sent and the device driver then
resumes operations with the previously prevailing Transmit Buffer Load Count
(as determined by Function 53h).
[Back]
[Next]