This structure can do either of the following:
The precise structure is service-dependent since it contains a control message whose size is determined by the service. In general, the structure takes the form shown below.
typedef struct tagReceiveInfo {
    WORD wFlags;
    WORD wStatus;
    WORD wTransID;
    DWORD dwDataSize;
    LPVOID pData;
    WORD _reserved;
    RTHANDLE hForwPort;
    GENADDR LocalAddress;
    GENADDR RemoteAddress;
    WORD wControlMsgLength;
    BYTE byControlMessage[1];
} RECEIVEINFO, *LPRECEIVEINFO;);
wFlags 
| Data type | Defines the data transmission type: CONTIGUOUS_BUFFER DATA_CHAIN DATA_LIST  | 
| Receive type | Identifies the received message type: NORMAL_MESSAGE STATUS_MESSAGE REQUEST_MESSAGE RESPONSE_MESSAGE It also determines the correct interpretation of the status and other receive fields.  | 
wStatus 
wTransID 
0 (zero) | 
A new transactionless message has been received. | 
| Non-zero | A request or response message, or a status message indicating an erroneous asynchronous transmission has been received. | 
dwDataSize 
pData 
hForwPort 
LocalAddress 
RemoteAddress 
wControlMsgLength 
byControlMessage 
GENADDR structure