3.1.1.4.2 IRPCAsyncNotify_UnregisterClient (Opnum 1)

The IRPCAsyncNotify_UnregisterClient method is called by registered clients to unregister previously-registered remote objects. For this call to succeed, the remote object MUST have already successfully called IRPCAsyncNotify_RegisterClient.

 HRESULT IRPCAsyncNotify_UnregisterClient(
   [in] PRPCREMOTEOBJECT pRegistrationObj
 );

pRegistrationObj: MUST be the remote object context handle that MUST have been successfully registered by a prior call to IRPCAsyncNotify_RegisterClient. This value MUST NOT be NULL.

Return Values: This method MUST return an HRESULT success value ([MS-ERREF] section 2.1.1) to indicate success, or an HRESULT error value to indicate failure. The client MUST consider all error return values fatal and report them to the higher-level caller.

Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying RPC protocol [MS-RPCE].

If a client call to IRPCAsyncNotify_GetNewChannel or IRPCAsyncNotify_GetNotification is blocked on the server waiting for a notification channel or notification to become available, the server MUST process a client call to IRPCAsyncNotify_UnregisterClient without waiting for the notification channel or notification.

A server MUST NOT do the following:

  • Indicate success to a client call of IRPCAsyncNotify_UnregisterClient unless a prior call to IRPCAsyncNotify_RegisterClient succeeded using the same PRPCREMOTEOBJECT value.

  • Indicate success to a client call of IRPCAsyncNotify_UnregisterClient following a prior successful call to IRPCAsyncNotify_UnregisterClient by using the same PRPCREMOTEOBJECT value.

A client MUST NOT do the following:

  • Call IRPCAsyncNotify_UnregisterClient, unless a prior call to IRPCAsyncNotify_RegisterClient succeeded by using the same PRPCREMOTEOBJECT value.

  • Call IRPCAsyncNotify_UnregisterClient following a prior call to IRPCAsyncNotify_UnregisterClient by using the same PRPCREMOTEOBJECT value.