include vcomm.inc _PortData STRUC PDLength DW ? ; size of this structure PDVersion DW ? ; version of this structure PDfunctions DD ? ; address of _PORTFUNCTIONS PDNumFunctions DD ? ; last supported function dwLastError DD ? ; see below dwClientEventMask DD ? ; see below lpClientEventNotify DD ? ; see below lpClientReadNotify DD ? ; see below lpClientWriteNotify DD ? ; see below dwClientRefData DD ? ; see below dwWin31Req DD ? ; reserved dwClientEvent DD ? ; see below dwCallerVMID DD ? ; reserved dwDetectedEvents DD ? ; see below dwCommError DD ? ; detected I/O errors; see below bMSRShadow DB ? ; see below wFlags DW ? ; reserved LossByte DB ? ; reserved QInAddr DD ? ; base address of receive queue QInSize DD ? ; size of receive queue QOutAddr DD ? ; base address of transmit queue QOutSize DD ? ; size of transmit queue QInCount DD ? ; num. bytes in receive queue QInGet DD ? ; see below QInPut DD ? ; see below QOutCount DD ? ; num. bytes in transmit queue QOutGet DD ? ; see below QOutPut DD ? ; see below ValidPortData DD ? ; reserved lpLoadHandle DD ? ; see below cmto COMMTIMEOUTS <> ; see below lpReadRequestQueue DD ? ; reserved lpWriteRequestQueue DD ? ; reserved dwLastReceivedTime DD ? ; time of last reception of data dwReserved1 DD ? ; reserved dwReserved2 DD ? ; reserved _PortData ENDS
Contains information about an open port. Some of the information in this structure is used by VCOMM, and some by the port driver. The port driver is responsible for initializing the fields whose names begin with PD.
dwLastError
Error value for the last operation. The port driver sets this value during each call to a port-driver function.
dwClientEventMask
Zero or more values specifying enabled communications events. VCOMM sets this value when the _VCOMM_SetCommEventMask service is called. For a list of events, see the PortGetEventMask function.
lpClientEventNotify, lpClientReadNotify, and lpClientWriteNotify
Addresses of client-defined callback functions for event notification, receive-queue threshold notification, and transmit-queue threshold notification.
dwClientRefData
Reference data for event notification (not for threshold notifications). The port driver sets this value when the PortEnableNotification function is called.
dwClientEvent
One or more values specifying detected events that VCOMM is waiting to sent to a non-VxD client. Port drivers should ignore this field.
dwDetectedEvents
One or more values specifying enabled events that were detected. The port driver maintains this value. For a list of events, see the PortGetEventMask function.
dwCommError
Value specifying detected I/O errors. The port driver maintains this value. For a list of possible values, see the _VCOMM_ClearCommError service.
bMSRShadow
The initial location of the modem status shadow. The port driver must update this value whenever the register changes. The PortSetModemStatusShadow function sets the location of the modem status shadow.
QInGet and QInPut
Current read and write offsets within the receive queue. The first character in the queue is at the location specified by QInGet. Additional characters are added to the queue starting at the location specified by QInPut. Both VCOMM and the port driver modify these values.
QOutGet and QOutPut
Current read and write offsets within the transmit queue. The first character in the queue is at the location specified by QInGet. Additional characters are added to the queue starting at the location specified by QInPut. Both VCOMM and the port driver modify these values.
lpLoadHandle
Load handle of the port-driver VxD. This field is used by VCOMM only.
cmto
A COMMTIMEOUTS structure specifying the read and write time-outs for the communications port.
See also commtimeouts, PortEnableNotification, _PORTFUNCTIONS, PortGetEventMask, PortSetModemStatusShadow, _VCOMM_ClearCommError, _VCOMM_SetCommEventMask