Функция FaxDevStartJob (faxdev.h)

Служба факсов вызывает функцию FaxDevStartJob для инициализации нового задания факса. Служба факсов также вызывает FaxDevStartJob , чтобы сообщить о начале каждой факсимильной операции поставщику службы факсов (FSP). Каждый FSP должен экспортировать функцию FaxDevStartJob .

Синтаксис

BOOL FaxDevStartJob(
  [in]  HLINE     LineHandle,
  [in]  DWORD     DeviceId,
  [out] PHANDLE   FaxHandle,
  [in]  HANDLE    CompletionPortHandle,
  [in]  ULONG_PTR CompletionKey
);

Параметры

[in] LineHandle

Тип: HLINE

Указывает дескриптор устройства открытой строки, связанного с заданием факса.

[in] DeviceId

Тип: DWORD

Указывает идентификатор устройства линии TAPI, связанный с заданием факса.

[out] FaxHandle

Тип: PHANDLE

Указатель на переменную, которая получает дескриптор факса, связанный с заданием факса. FSP должен задать для этого дескриптора осмысленное значение; Этот дескриптор обычно указывает указатель на блок памяти с данными экземпляра конкретного задания.

[in] CompletionPortHandle

Тип: HANDLE

Указывает дескриптор для порта завершения ввода-вывода. Дополнительные сведения см. в разделе Порты завершения ввода-вывода.

[in] CompletionKey

Тип: ULONG_PTR

Задает значение ключа завершения. Поставщик службы факсов должен передать это непрозрачное значение функции PostQueuedCompletionStatus .

Возвращаемое значение

Тип: BOOL

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Чтобы получить расширенные сведения об ошибке, служба факсов вызывает GetLastError.

Комментарии

Функция FaxDevStartJob предоставляет поставщику услуг факсов возможность выполнить настройку звонка.

Служба факсов вызывает FaxDevStartJob в начале нового задания факса и один раз для каждой операции факса. Это связано с тем, что каждая операция выполняется в отдельном потоке. Он вызывает FaxDevStartJob непосредственно перед вызовом функции FaxDevSend для операции отправки факса и непосредственно перед вызовом функции FaxDevReceive для операции получения факса. Дополнительные сведения см. в разделе Работа в многопоточной среде.

FSP должен создать пакет завершения ввода-вывода и вызвать функцию PostQueuedCompletionStatus , когда FSP изменяет свое состояние. Одним из примеров изменения состояния является окончание FSP получения или отправки страниц передачи факса. Пакет завершения должен быть FAX_DEV_STATUS структурой. FSP должен выделить память для структуры из кучи, указанной параметром HeapHandle , переданным функции FaxDevInitialize . Поставщик службы факсов должен передать размер памяти, выделенной параметру dwNumberOfBytesTransferred метода PostQueuedCompletionStatus. Служба факсов освобождает любую память, выделенную для структуры пакетов завершения.

FSP должен использовать параметры CompletionPortHandle и CompletionKey для отправки пакетов завершения для изменения состояния FSP. Этот метод уведомления о состоянии оптимизирует производительность, так как службе факсов не нужно опрашивать FSP для получения обновленных сведений о состоянии. Дополнительные сведения см. в разделе Создание пакета завершения.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional, Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header faxdev.h

См. также раздел

FAX_DEV_STATUS

Функции поставщика службы факсов

FaxDevEndJob

FaxDevInitialize

FaxDevReceive

FaxDevSend

PostQueuedCompletionStatus

Использование API поставщика службы факсов