3.2.4.4.2 Releasing Reference Counts on an Interface

When the DCOM application is finished using the object reference, the client MUST perform the following sequence of operations:

  • It MUST look up the IPID entry for the IPID specified by the application.

  • Using the OXID contained in the IPID entry, it MUST look up the OXID entry.

  • Using the OID contained in the IPID entry, it MUST look up the OID entry.

  • It MUST use the IPID of the IRemUnknown interface of the object exporter contained in the OXID entry to issue an ORPC call, see section 3.2.4.2, on the RemRelease method of the IRemUnknown interface.

The client MUST specify the following when making the call:

  • A REMINTERFACEREF structure containing:

    • The IPID specified by the application.

    • The number of public reference counts contained in the IPID entry.

    • The number of private reference counts contained in the IPID entry.<92>

When the call returns successfully, the client MUST perform the following:

  • It MUST remove the IPID entry from the IPID table.

  • It MUST remove the IPID from the IPID list in the OID entry.

  • If the IPID list of the OID entry is empty, it MUST remove the OID entry from the OID table.