Transaction buffers are used to track many operations through the service, whether a simple send, a send-RSVP or certain receive operations. If a send-RSVP operation is initiated, the transaction buffer remains until the associated response message has been received and delivered to the port.
typedef struct tagTransaction { LPVOID lpOutQlink; WORD _reserved_1; LPVOID lpInQLink; WORD _reserved_2; BYTE byTransCntr; BYTE byTransID; WORD _reserved; WORD wFlags; WORD wState; RTHANDLE hPort; RTHANDLE hThread; LPVOID lpMsg; WORD _reserved_3; WORD wSendStatus; LPCONTROLBUFFER lpInControlMsg; WORD _reserved_4; LPCONTROLBUFFER lpOutControlMsg; WORD _reserved_5; DWORD cbDataLength; LPVOID lpData; WORD _reserved_6; DWORD cbRSVPLength; LPVOID lpRSVPData; WORD _reserved_7; LPVOID lpOrgRSVPData; WORD _reserved_8; DWORD dwFragOffset; WORD wFragBlock; GENADDR RemoteHost; } TRANSACTION, *LPTRANSACTION;
wFlags
wState
lpOutControlMsg
hPort |
Contains the caller's port handle field (source port ID). |
wLocalTransID |
Contains the ID of the transaction structure allocated. |
byControl |
Contains the caller's control message. |
cbDataLength
dwDataLength
field, the number of bytes in the data message. If there is no data message then this field will contain 0 (zero).
lpData
wFlags
field. If there is no data message then this field will contain NULL.
cbRSVPDataLength
pRSVPDataLength
, the size of the RSVP buffer. Otherwise this field will contain 0 (zero).
lpRSVPData
pRSVPData
, pointing to the RSVP buffer. Otherwise this field contains NULL.
dwFragOffset, wFragBlock
RemoteHost
SendMessage, SendRtMessageRSVP