CommNotifyProc


cCall [CommNotifyProc], <hPort, lReferenceData,     lEvent, lSubEvent>

Client-defined callback function that VCOMM calls when the transmit or receive queue passes a specified threshold or a communications event occurs.

hPort

Handle of the communications resource.

lReferenceData

32-bit variable passed to _VCOMM_EnableCommNotification.

lEvent

Event type. Can be one of these values:

Value

Meaning

CN_RECEIVED

The number of bytes in the receive queue has reached the notification threshold for the receive queue.

CN_TRANSMIT

The number of bytes in the transmit queue has fallen below the notification threshold for the transmit queue.

CN_EVENT

An enabled communications event occurred. See below.


Notification thresholds are set by the _VCOMM_EnableCommNotification service. Events are enabled by the _VCOMM_SetCommEventMask service.

lSubEvent

Enabled communications events that were detected, if the lEvent parameter is CN_EVENT. Otherwise, this parameter is ignored. Can be one or more of these values:

Value

Meaning

EV_BREAK

BREAK received.

EV_CTS

CTS changed state.

EV_CTSS

CTS state, as reported in Windows 3.1. To accurately identify the CTS state, use EV_CTSS2.

EV_CTSS2

CTS state.

EV_DSR

DSR changed state.

EV_DSRS

DSR state, as reported in Windows 3.1. To accurately identify the DSR state, use EV_DSRS2.

EV_DSRS2

DSR state.

EV_ERR

Line status error occurred.

EV_PERR

Printer error occurred.

EV_RING

Ring signal detected, as reported in Windows 3.1. To accurately identify the ring signal event, use EV_RING2.

EV_RING2

Ring signal detected.

EV_RingTe

Ring trailing edge indicator.

EV_RLSD

RLSD changed state.

EV_RLSDS

RLSD state.

EV_RXCHAR

Any character received.

EV_RXFLAG1

Received the event character specified by the EvtChar1 field of _DCB.

EV_RXFLAG2

Received the event character specified by the EvtChar2 field of _DCB.

EV_TXEMPTY

Transmit queue empty.

EV_TXCHAR

Any character transmitted.


This function is called at interrupt time with interrupts enabled. Therefore, it must call only asynchronous VxD services and must be reentrant. If you need to disable interrupts, do so for as short a time as possible; otherwise, system performance deteriorates and characters may be lost. For time-consuming operations, it is best to schedule events and have event handlers do most of the processing.

The name CommNotifyProc is a placeholder; this function may have any name. For more information, see _VCOMM_EnableCommNotification.

See also _VCOMM_EnableCommNotification, _VCOMM_SetCommEventMask