IDtcToXaMapper::TranslateTridToXid
Applies To: Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server Technical Preview, Windows Vista
This method is called to obtain an XID from an ITransaction interface pointer. The ODBC driver calls this method each time a connection is enlisted on a new transaction. The ITransaction pointer is offered by a transaction object. The transaction object contains a DTC transaction that is identified by a transaction identifier (TRID) which is a globally unique identifier (GUID). Given a TRID, one can always create an XID.
The XID should be stored in the connection object as it may be needed in the future. After obtaining the XID, the ODBC driver should issue an xa_start or its equivalent on the back-end resource manager to associate the XID with the connection.
Syntax
HRESULT TranslateTridToXid( DWORD * pdwITransaction, DWORD dwRMCookie, XID * pXid);
Parameters
pdwITransaction
[in] A pointer to ITransaction object which the application passes in as a value for the SQL_ENLIST_IN_DTC connection attribute.
dwRMCookie
[in] A cookie representing the RM which was obtained from the call to RequestNewResourceManager.
pXid
[in/out] A pointer to the caller allocated XID structure.
#define XIDDATASIZE 128 /* size in bytes */
typedef struct xid_t {
LONG formatID;
LONG gtrid_length;
LONG bqual_length;
CHAR data[XIDDATASIZE];
} XID;
Return Values
S_OK
Success.
E_INVALIDARG
One or more of the parameters are not valid.
XACT_E_NOTRANSACTION
No transaction corresponding to pdwITransaction.
Requirements
For an explanation of the requirement values, see Requirements (Component Services).
Platforms: Windows Server 2016, Windows 10, Windows Server 2012 R2, Windows 8.1, Windows Server 2012, Windows 8, Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista
Header: Declared in oletx2xa.h
See Also
IDtcToXaHelperFactory
IDtcToXaHelper
IDtcToXaHelperSinglePipe