3.1.6 End-to-End marking

A few of the functions in the TSPI have the properties that (1) they request a long-running operation for which there can be only one outstanding, and (2) a matching message is returned when the operation completes. These characteristics together with the asynchronous request model lead to a subtle ambiguity as shown in the following timing diagram:

A long-running operation with a matching message is shown. Time proceeds downwards with the boundary between TAPI DLL and Service Provider shown by the long vertical line. (1) An operation is requested. The Service Provider returns (2) with an "asynchronous" indication and eventually a matching asynch-completion (3), which may indicate "success" or "failure". What if the Service Provider issues a matching "operation complete" message (4) in the interval? Does this correspond to the newly requested operation or some previously requested instance (5) of the same operation?