Función FaxDevStartJob (faxdev.h)

El servicio de fax llama a la función FaxDevStartJob para inicializar un nuevo trabajo de fax. El servicio de fax también llama a FaxDevStartJob para indicar el principio de cada operación de fax al proveedor de servicios de fax (FSP). Cada FSP debe exportar la función FaxDevStartJob .

Sintaxis

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

Parámetros

[in] LineHandle

Tipo: HLINE

Especifica un identificador para el dispositivo de línea abierta asociado al trabajo de fax.

[in] DeviceId

Tipo: DWORD

Especifica el identificador de dispositivo de línea TAPI asociado al trabajo de fax.

[out] FaxHandle

Tipo: PHANDLE

Puntero a una variable que recibe un identificador de fax asociado al trabajo de fax. El FSP debe establecer este identificador en un valor significativo; Este identificador suele especificar un puntero a un bloque de memoria con datos de instancia específicos del trabajo.

[in] CompletionPortHandle

Tipo: HANDLE

Especifica un identificador para un puerto de finalización de E/S. Para obtener más información, consulte Puertos de finalización de E/S.

[in] CompletionKey

Tipo: ULONG_PTR

Especifica un valor de clave de finalización. El proveedor de servicios de fax debe pasar este valor opaco a la función PostQueuedCompletionStatus .

Valor devuelto

Tipo: BOOL

Si la función se realiza correctamente, el valor devuelto es distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, el servicio de fax llama a GetLastError.

Comentarios

La función FaxDevStartJob ofrece una oportunidad para que el proveedor de servicios de fax realice la configuración de llamadas.

El servicio de fax llama a FaxDevStartJob al principio de un nuevo trabajo de fax y una vez para cada operación de fax. Esto se debe a que cada operación se ejecuta en un subproceso independiente. Llama a FaxDevStartJob justo antes de la llamada de función FaxDevSend para una operación de envío de fax y justo antes de la llamada de función FaxDevReceive para una operación de recepción de fax. Para obtener más información, vea Funcionamiento en un entorno multiproceso.

El FSP debe crear un paquete de finalización de E/S y llamar a la función PostQueuedCompletionStatus cuando el FSP cambia su estado. Un ejemplo de cambio de estado es cuando el FSP termina de recibir o enviar páginas de transmisión de fax. El paquete de finalización debe ser una estructura FAX_DEV_STATUS . El FSP debe asignar memoria para la estructura del montón indicado por el parámetro HeapHandle pasado a la función FaxDevInitialize . El proveedor de servicios de fax debe pasar el tamaño de la memoria asignada al parámetro dwNumberOfBytesTransferred del método PostQueuedCompletionStatus. El servicio de fax libera cualquier memoria asignada para la estructura de paquetes de finalización.

El FSP debe usar los parámetros CompletionPortHandle y CompletionKey para publicar los paquetes de finalización para los cambios de estado de FSP. Este método de notificación de estado optimiza el rendimiento porque el servicio de fax no necesita sondear los FSP para obtener información de estado actualizada. Para obtener más información, vea Crear un paquete de finalización.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional, Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado faxdev.h

Consulte también

FAX_DEV_STATUS

Funciones del proveedor de servicios de fax

FaxDevEndJob

FaxDevInitialize

FaxDevReceive

FaxDevSend

PostQueuedCompletionStatus

Uso de la API del proveedor de servicios de fax