3.1.4.1.30 FAX_EnumRoutingExtensions (Opnum 78)

The FAX_EnumRoutingExtensions (Opnum 78) function is called by the client to enumerate all the routing extensions that are registered with the specified fax server. The function returns detailed information about each of the routing extensions.

In response, the server MUST validate whether the client's fax user account has access to enumerate all the routing extensions on the server. On success, the server MUST return information about all its routing extensions in Buffer. The server MUST also return the size of the returned information and the number of routing extensions for which it successfully enumerated information.

The client SHOULD free the returned buffer.

 error_status_t FAX_EnumRoutingExtensions(
   [in] handle_t hFaxHandle,
   [out, size_is(, *BufferSize)] LPBYTE* Buffer,
   [out, ref] LPDWORD BufferSize,
   [out, ref] LPDWORD lpdwNumExts
 );

hFaxHandle: The RPC binding handle for this call. The client SHOULD reuse the RPC binding handle used as an input hBinding argument for the FAX_ConnectFaxServer (section 3.1.4.1.10) or FAX_ConnectionRefCount (section 3.1.4.1.11) method call used to connect to the fax server.

Buffer: A pointer to the address of a buffer to receive an array of FAX_ROUTING_EXTENSION_INFO (section 2.2.49) structures. Each structure contains information about one fax routing extension, as it pertains to the entire Fax Service.

BufferSize: A pointer to a DWORD ([MS-DTYP] section 2.2.9) in which to return the size, in bytes, of the buffer.

lpdwNumExts: A pointer to a DWORD variable to receive the number of FAX_ROUTING_EXTENSION_INFO that the method returns in the ppRoutingExtensions parameter. This number MUST equal the total number of fax device routing extensions that are installed on the target server.

Return Values: 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_ACCESS_DENIED

0x00000005

Access is denied. The client's fax user account does not have the access rights (FAX_ACCESS_QUERY_CONFIG) required for this operation.

ERROR_NOT_ENOUGH_MEMORY

0x00000008

Not enough storage is available to process this command. The fax server cannot allocate sufficient memory to hold the array of FAX_ROUTING_EXTENSION_INFO structures to be returned to the client.

ERROR_INVALID_PARAMETER

0x00000057

The Buffer parameter is set to a NULL pointer value. <97>

ERROR_INTERNAL_ERROR

0x0000054F

The fax server failed to custom marshal the array of FAX_ROUTING_EXTENSION_INFO structures to be returned to the client.

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