| Previous | Next |
| ERROR_IRQ_BUSY | ERROR_COUNTER_TIMEOUT |
ERROR_MORE_WRITES
A serial I/O operation was completed by another write to the serial port.
ERROR_MORE_WRITES is decimal 1120 (0x460). In this specific Win32 definition it is tied to IOCTL_SERIAL_XOFF_COUNTER: the pending counter operation completed because another write to the serial port caused the XOFF counter to reach zero. It is not a general instruction that an application should blindly issue more writes.
Understanding the XOFF counter
An XOFF counter request asks the serial stack to transmit an XOFF character and maintain a counter associated with subsequent transmitted characters. Completion can occur for several reasons. Code 1120 identifies the completion path in which write activity consumed the counter, so the ordering of overlapped writes is central to interpretation.
- industrial protocols using software flow control around bursts of output
- communications libraries that expose native serial IOCTLs
- driver tests that deliberately overlap XOFF counter and write requests
- legacy applications ported from direct Win32 serial handling
Evidence to capture
- the initial XOFF character, counter value, timeout, and request timestamp
- every concurrent
WriteFilerequest with byte count and completion order - whether the handle uses overlapped I/O and which
OVERLAPPEDobject completed - configured DCB flow-control flags and current communications status
- cancellation, purge, close, and device-removal events around the request
Telemetry should identify the request itself rather than logging only “serial error 1120.” In an asynchronous design, a late completion can otherwise be mistaken for the result of a newer operation that reused application state or an event object.
How to respond
Treat 1120 as a defined completion reason for the XOFF counter operation. The application should advance its serial state machine according to the protocol it implements, verify how many bytes were actually accepted by each write, and avoid automatically duplicating transmitted data.
If this completion was unexpected, serialize the relevant requests or make their relationship explicit. Reusing an OVERLAPPED structure before its operation is complete, sharing events ambiguously, or assuming submission order equals completion order can turn a valid driver result into data corruption at the application layer.
Diagnostic checks
- compare the requested counter with the total characters written after the IOCTL was issued
- call
ClearCommErrorwhen appropriate to obtain communications status and clear latched errors - trace write submissions and completions at both the application and driver boundary
- verify that software flow-control settings match the connected device protocol
- test with one outstanding operation at a time to separate ordering defects from hardware behavior
Difference from ERROR_COUNTER_TIMEOUT
ERROR_COUNTER_TIMEOUT means the XOFF counter request completed because its timeout expired before the counter reached zero. Error 1120 instead says write activity did reach the terminal counter condition. Both codes are specific to this serial operation and should not be generalized to unrelated I/O.
Example
A controller issues an XOFF counter with a count of 64, then two overlapped writes totaling 64 characters complete before the timeout. The IOCTL finishes with 1120. Retrying those writes would duplicate commands on the wire; the correct action is to record the counter completion and continue the protocol state machine.
References
- Microsoft: System Error Codes (1000–1299)
- Microsoft: IOCTL_SERIAL_XOFF_COUNTER
- Microsoft: ClearCommError function
Looking for a different code? Search another status or error code.
