Fonction FaxDevStartJob (faxdev.h)

Le service de télécopie appelle la fonction FaxDevStartJob pour initialiser une nouvelle tâche de télécopie. Le service de télécopie appelle également FaxDevStartJob pour signaler le début de chaque opération de télécopie au fournisseur de services de télécopie (FSP). Chaque FSP doit exporter la fonction FaxDevStartJob .

Syntaxe

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

Paramètres

[in] LineHandle

Type : HLINE

Spécifie un handle pour l’appareil en ligne ouverte associé au travail de télécopie.

[in] DeviceId

Type : DWORD

Spécifie l’identificateur d’appareil de ligne TAPI associé au travail de télécopie.

[out] FaxHandle

Type : PHANDLE

Pointeur vers une variable qui reçoit un handle de télécopie associé au travail de télécopie. Le FSP doit définir ce handle sur une valeur significative ; ce handle spécifie généralement un pointeur vers un bloc de mémoire avec des données instance spécifiques au travail.

[in] CompletionPortHandle

Type : HANDLE

Spécifie un handle pour un port d’achèvement d’E/S. Pour plus d’informations, consultez Ports d’achèvement d’E/S.

[in] CompletionKey

Type : ULONG_PTR

Spécifie une valeur de clé d’achèvement. Le fournisseur de services de télécopie doit passer cette valeur opaque à la fonction PostQueuedCompletionStatus .

Valeur retournée

Type : BOOL

Si la fonction réussit, la valeur de retour est différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations d’erreur étendues, le service de télécopie appelle GetLastError.

Remarques

La fonction FaxDevStartJob permet au fournisseur de services de télécopie d’effectuer la configuration des appels.

Le service de télécopie appelle FaxDevStartJob au début d’une nouvelle tâche de télécopie et une fois pour chaque opération de télécopie. En effet, chaque opération s’exécute dans un thread distinct. Il appelle FaxDevStartJob juste avant l’appel de fonction FaxDevSend pour une opération d’envoi de télécopie et juste avant l’appel de la fonction FaxDevReceive pour une opération de réception de télécopie. Pour plus d’informations, consultez Fonctionnement dans un environnement multithread.

Le FSP doit créer un paquet d’achèvement d’E/S et appeler la fonction PostQueuedCompletionStatus lorsque le FSP modifie son status. Un exemple de modification status est lorsque le FSP termine la réception ou l’envoi des pages de transmission de télécopie. Le paquet d’achèvement doit être une structure FAX_DEV_STATUS . Le FSP doit allouer de la mémoire pour la structure du tas indiqué par le paramètre HeapHandle passé à la fonction FaxDevInitialize . Le fournisseur de services de télécopie doit passer la taille de la mémoire allouée au paramètre dwNumberOfBytesTransferred de la méthode PostQueuedCompletionStatus. Le service de télécopie libère toute mémoire allouée pour la structure de paquets d’achèvement.

Le FSP doit utiliser les paramètres CompletionPortHandle et CompletionKey pour publier les paquets d’achèvement pour les modifications de status FSP. Cette méthode de notification status optimise les performances, car le service de télécopie n’a pas besoin d’interroger les FSP pour obtenir des informations status mises à jour. Pour plus d’informations, consultez Création d’un paquet d’achèvement.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel, Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête faxdev.h

Voir aussi

FAX_DEV_STATUS

Fonctions du fournisseur de services de télécopie

FaxDevEndJob

FaxDevInitialize

FaxDevReceive

FaxDevSend

PostQueuedCompletionStatus

Utilisation de l’API fournisseur de services de télécopie