Funzione FaxDevStartJob (faxdev.h)

Il servizio fax chiama la funzione FaxDevStartJob per inizializzare un nuovo processo fax. Il servizio fax chiama anche FaxDevStartJob per segnalare l'inizio di ogni operazione fax al provider di servizi fax (FSP). Ogni FSP deve esportare la funzione FaxDevStartJob .

Sintassi

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

Parametri

[in] LineHandle

Tipo: HLINE

Specifica un handle per il dispositivo a riga aperta associato al processo fax.

[in] DeviceId

Tipo: DWORD

Specifica l'identificatore del dispositivo della riga TAPI associato al processo fax.

[out] FaxHandle

Tipo: PHANDLE

Puntatore a una variabile che riceve un handle fax associato al processo fax. La FSP deve impostare questo handle su un valore significativo; questo handle specifica in genere un puntatore a un blocco di memoria con dati di istanza specifici del processo.

[in] CompletionPortHandle

Tipo: HANDLE

Specifica un handle per una porta di completamento di I/O. Per altre informazioni, vedere Porte di completamento di I/O.

[in] CompletionKey

Tipo: ULONG_PTR

Specifica un valore della chiave di completamento. Il provider di servizi fax deve passare questo valore opaco alla funzione PostQueuedCompletionStatus .

Valore restituito

Tipo: BOOL

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per ottenere informazioni di errore estese, il servizio fax chiama GetLastError.

Commenti

La funzione FaxDevStartJob consente al provider di servizi fax di eseguire la configurazione delle chiamate.

Il servizio fax chiama FaxDevStartJob all'inizio di un nuovo processo fax e una volta per ogni operazione fax. Questo perché ogni operazione viene eseguita in un thread separato. Chiama FaxDevStartJob appena prima della chiamata alla funzione FaxDevSend per un'operazione di invio fax e subito prima della chiamata della funzione FaxDevReceive per un'operazione di ricezione fax. Per altre informazioni, vedere Funzionamento in un ambiente multithreaded.

La FSP deve creare un pacchetto di completamento di I/O e chiamare la funzione PostQueuedCompletionStatus quando la FSP modifica il relativo stato. Un esempio di modifica dello stato è quando la FSP termina la ricezione o l'invio di pagine di trasmissione fax. Il pacchetto di completamento deve essere una struttura FAX_DEV_STATUS . Il servizio FSP deve allocare memoria per la struttura dall'heap indicato dal parametro HeapHandle passato alla funzione FaxDevInitialize . Il provider di servizi fax deve passare le dimensioni della memoria allocata al parametro dwNumberOfBytesTransferred del metodo PostQueuedCompletionStatus. Il servizio fax libera qualsiasi memoria allocata per la struttura del pacchetto di completamento.

La FSP deve usare i parametri CompletionPortHandle e CompletionKey per post-completamento dei pacchetti di completamento per le modifiche dello stato FSP. Questo metodo di notifica di stato ottimizza le prestazioni perché il servizio fax non deve eseguire il polling degli FSP per ottenere informazioni sullo stato aggiornate. Per altre informazioni, vedere Creazione di un pacchetto di completamento.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional, Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione faxdev.h

Vedi anche

FAX_DEV_STATUS

Funzioni del provider di servizi fax

FaxDevEndJob

FaxDevInitialize

FaxDevReceive

FaxDevSend

PostQueuedCompletionStatus

Uso dell'API Provider di servizi fax