These extensions allow static callback functions to be declared in the client side of a distributed application. This functionality provides a way for the server to make an RPC method call to the client. During a callback, the original client that initiates the call is defined as a callback server.
Callback routines are declared by using a callback keyword in an IDL file.
These extensions use operation numbers (opnums) to inform a callback server of the operation it should call. Callback operations and noncallback operations use overlapping ranges of opnums starting at zero to identify the operation by using the following rules: Operation numbers for callback operations MUST be generated consecutively, counting callback operations only, beginning with 0 (zero), in the order in which callback operations appear in the IDL source. Callback operations MUST be excluded in calculating the operation numbers for noncallback operations. If an operation is called in the context of a callback (for information on handling callbacks, see section 18.104.22.168.9), an implementation of this extension MUST use the callback opnum range for calling the method. If an operation is not called in the context of a callback, an implementation of this extension MUST use the opnum range, as specified in [C706] section 5.2.1.