Platform SDK: Exchange Server |
The PR_TRACE_INFO property stores a TRACEINFO structure containing gateway’s external trace information for a message. PR_TRACE_INFO helps a gateway or message transfer agent determine the path that a message has traveled. This information is critical for preventing message delivery loops. A TRACEINFO structure contains a set of TRACEENTRY structures in chronological order.
TRACEINFO Structure Members
Member | Type | Description |
---|---|---|
cEntries | Long | Number of TRACEENTRY structures. |
rgtraceentry[ ] | TRACEENTRY | Array of TRACEENTRY structures |
Each TRACEENTRY structure in the TRACEINFO structure contains the following members.
TRACEENTRY Structure Members
Member | Type | Description |
---|---|---|
lAction | Long | Routing action taken by the tracing domain. Possible actions are: expanded, redirected, relayed, and rerouted. |
ftArrivalTime | Filetime | Time at which the message entered the tracing domain. |
ftDeferredTime | Filetime | Time at which the tracing domain released the message. |
rgchADMDName[17] | Char | ADMD name of tracing domain. |
rgchCountryName[4] | Char | Country name of tracing domain. |
rgchPRMDId[17] | Char | PRMD Identifier of tracing domain. |
rgchAttADMDName[17] | Char | Attempted domain ADMD name. Contains information if attempt to send failed and message was rerouted. |
rgchAttCountryName[4] | Char | Attempted domain country name. Contains information if attempt to send failed and message was rerouted. |
rgchAttPRMDId[17] | Char | Attempted domain PRMD Identifier. Contains information if attempt to send failed and message was rerouted. |
As a minimum requirement, each time a gateway submits an incoming message to Microsoft Exchange Server, it should create a TRACEENTRY containing an action, arrival time, and deferred time, as well as the country code, the Administration Management Domain (ADMD), and the Private Management Domain (PRMD) for the local domain.
If the foreign system supports similar trace information, the gateway can either translate the trace information or drop it when transferring outgoing messages to the foreign domain.
You can use the following utility functions to manipulate message tracing information.
TRACEINFO Utility Functions
Function | Action |
---|---|
HrTraceGetEntryListSize | Retrieves the size of TRACEINFO in memory, in bytes. |
HrTraceGetEntryList | Retrieves the TRACEINFO for the given message. |
HrTraceCreateEntryList | Creates a TRACEENTRY for the given message. |
HrTraceAppendEntryList | Appends a TRACEENTRY to an existing TRACEINFO. |
HrTraceSetEntryList | Sets the TRACEINFO for the given message. |
The MAPI utility functions use the following structures.
Structure | Description |
---|---|
TRACEENTRY | Information for one trace. |
TRACEINFO | Array of all TRACEENTRYs for one message. |