3 Protocol Details

The client side of this protocol is a pass-through. That is, no additional timers or other state is required on the client side of this protocol. Calls made by the higher-layer protocol or application are passed directly to the transport, and the results that the transport returns are passed directly back to the higher-layer protocol or application.

A client application initiates a conversation with a COM+ Tracker Service Protocol server in one of three ways:

  • If the client application wants to poll for tracking information, it performs DCOM activation (as specified in [MS-DCOM], section 3.2.4.1.1) of the tracker service CLSID (CLSID_TrackerService), as specified in section 1.9. After getting the interface pointer to the DCOM object as a result of the activation, the client application works with the object by making calls on the DCOM interface that it supports. When complete, the client application performs a release on the interface pointer.

  • If the client application wants to receive tracker events, it uses any implementation-specific mechanism<15> to supply an IComTrackingInfoEvents (section 3.2.5.1) callback interface to the server. Thereafter, the COMT server sends tracker events as a result of implementation-specific local events, and the client application receives these events in the form of DCOM calls to OnNewTrackingInfo() on the client application's IComTrackingInfoEvents interface. The credentials that are used for these calls are COMT server implementation-specific.<16> The conversation can be terminated by either the client application or the COMT server.

  • If the client application wants to request a process dump, it performs a DCOM activation ([MS-DCOM] section 3.2.4.1.1) of the process dump service CLSID (CLSID_ProcessDump) as specified in section 1.9. Depending on the behavior of the underlying DCOM client implementation, the client application might need to override the default impersonation level to use RPC_C_IMPL_LEVEL_IMPERSONATE (as specified in [MS-RPCE] section 2.2.1.1.9). After getting the interface pointer to the DCOM object as a result of the activation, the client application works with the object by making calls on the DCOM interface that it supports. When done, the client application performs a release operation on the interface pointer.

When the client application no longer wants to receive tracker events, the client application uses any implementation-specific mechanism<17> to request that the server stop sending events and release the client's IComTrackingInfoEvents interface.

When the server no longer has to send tracker events, it performs a release on the interface pointer to IComTrackingInfoEvents.