Fax Job Overview

A fax job is a set of fax operations. A fax operation can be a send operation or a receive operation. At the beginning of every fax job the fax service calls FaxDevStartJob to provide an opportunity for the fax service provider (FSP) to perform call setup, and to initialize the new fax job. The fax service also calls FaxDevStartJob at the beginning of each fax operation because each operation executes in a separate thread.

The following diagram illustrates the sequence of function calls the fax service makes during a fax send operation or a fax receive operation. The FSP must export these functions.

function calls for a fax send or fax receive operation

The fax service calls the following functions sequentially in one synchronous thread.

  1. FaxDevStartJob. Initializes a fax job and signals the beginning of a fax operation.
  2. FaxDevSend (or FaxDevReceive). Signals the FSP to initiate an outgoing fax transmission (or to receive an incoming fax transmission).
  3. FaxDevReportStatus. Queries the FSP for status information about an active fax operation.
  4. FaxDevEndJob. Closes the active fax job.

The fax service can also call the FaxDevReportStatus and the FaxDevAbortOperation functions asynchronously, on an execution thread that is independent of the fax operation, during a send or a receive operation. FaxDevAbortOperation requests that the FSP terminate an active operation.

Initializing a Fax Service Provider

Transmitting a Fax

Terminating a Fax

Obtaining a Fax Status