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