3.2.4.2 FAX_ClientEventQueue (Opnum 1)

The FAX_ClientEventQueue (Opnum 1) method is called by the fax server (acting as an RPC client for this call) when it needs to deliver a legacy fax event to the fax client (acting as an RPC server for this call). The fax client registers for notifications of legacy events with the fax server by calling FAX_StartServerNotification (section 3.1.4.1.100) or FAX_StartServerNotificationEx (section 3.1.4.1.101). In this call, the fax client MUST pass a fax client notification context, which the fax server MUST pass back to the fax client when it sends an event. This is done to provide a security layer, by verifying that the notifications are coming from an expected source.

In response, the fax client MUST validate the notification context in the FaxPortHandle argument that is sent by the fax server to ensure that this is a valid notification context created with a successful FAX_OpenConnection (section 3.2.4.5) method call for which FAX_CloseConnection (section 3.2.4.4) was not already successfully called. If the validation fails, the fax client MUST abort the operation and MUST return ERROR_SUCCESS. If the notification context is valid, the fax client MUST accept notifications for fax client events. On success, the fax client MUST accept the fax event notification.

 error_status_t FAX_ClientEventQueue(
   [in] RPC_FAX_HANDLE FaxPortHandle,
   [in] FAX_EVENT FaxEvent
 );

FaxPortHandle: A fax data type that indicates a context handle for this call.

FaxEvent: A FAX_EVENT (section 2.2.66) structure that contains the contents of an I/O completion packet. The fax server sends the completion packet to notify a fax client application about an asynchronous fax server event. Since the client is to be notified of each event separately, in this case ORing of events is not allowed.

This method MUST return 0x00000000 (ERROR_SUCCESS) for success; otherwise, it MUST return one of the following error codes, one of the fax-specific errors that are defined in section 2.2.52, or one of the other standard errors defined in [MS-ERREF] section 2.2.

Return value/code

Description

ERROR_NOT_ENOUGH_MEMORY

0x00000008

Not enough storage is available to process this command.

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