Funzione FaxDevVirtualDeviceCreation (faxdev.h)

Il servizio fax chiama la funzione FaxDevVirtualDeviceCreation durante l'inizializzazione per consentire al provider di servizi fax (FSP) di presentare dispositivi fax virtuali. Ogni FSP che presenta dispositivi fax virtuali al servizio fax deve esportare la funzione FaxDevVirtualDeviceCreation .

Sintassi

BOOL FaxDevVirtualDeviceCreation(
  [out] LPDWORD   DeviceCount,
  [out] LPWSTR    DeviceNamePrefix,
  [out] LPDWORD   DeviceIdPrefix,
  [in]  HANDLE    CompletionPort,
  [in]  ULONG_PTR CompletionKey
);

Parametri

[out] DeviceCount

Tipo: LPDWORD

Puntatore a una variabile DWORD senza segno che riceve il numero di dispositivi fax virtuali che il servizio fax deve creare per la FSP. Se il parametro FSP imposta questo parametro su zero, l'inizializzazione del provider avrà esito negativo.

[out] DeviceNamePrefix

Tipo: LPWSTR

Puntatore a una variabile che riceve una stringa di caratteri Unicode con terminazione null, limitata a 128 caratteri WCHAR . La FSP deve impostare questa stringa sul prefisso del nome per il dispositivo fax virtuale. Il servizio fax aggiunge il valore del parametro DeviceIdPrefix a questa stringa. Il risultato è un nome di dispositivo univoco per ogni dispositivo fax virtuale creato dal servizio fax.

[out] DeviceIdPrefix

Tipo: LPDWORD

Puntatore a una variabile DWORD senza segno che riceve un valore diverso da zero. La FSP deve impostare questo membro su un valore numerico univoco che identifica il dispositivo fax virtuale. Il servizio fax aggiunge questo valore a un numero sequenziale, a partire da zero per il primo dispositivo virtuale. Il risultato è un identificatore univoco del dispositivo per ogni dispositivo fax virtuale creato dal servizio fax.

[in] CompletionPort

Tipo: HANDLE

Specifica un handle che la FSP deve usare per pubblicare i pacchetti di porte di completamento di I/O al servizio fax per gli eventi di stato della riga asincroni. Attualmente la funzione FaxDevVirtualDeviceCreation supporta solo l'evento che segnala una chiamata in ingresso.

Il pacchetto di porta di completamento deve essere una struttura TAPI 2.x LINEMESSAGE . La FSP deve allocare memoria per la struttura con LocalAlloc(LPTR, sizeof(LINEMESSAGE)). Il provider di servizi fax deve passare le dimensioni della memoria allocata (che è sizeof(LINEMESSAGE) in questo caso) al parametro dwNumberOfBytesTransferred del metodo PostQueuedCompletionStatus . Il servizio fax libera qualsiasi memoria allocata per la struttura del pacchetto di completamento.

La FSP deve impostare i membri della struttura come indicato di seguito.

Membro Contenuto
hDevice Impostare su DeviceId da FaxDevStartJob
dwMessageID Impostare su 0
dwCallbackInstance Impostare su 0
dwParam1 Impostare su LINEDEVSTATE_RINGING
dwParam2 Impostare su 0
dwParam1 Impostare su 0
 

Per informazioni sugli eventi di stato della riga, vedere LINEDEVSTATE_ Costanti nella documentazione di TAPI. Per informazioni sulle porte di completamento di I/O, vedere Porte di completamento di I/O.

[in] CompletionKey

Tipo: ULONG_PTR

Specifica un valore della chiave di completamento. La FSP deve usare questo valore quando il provider pubblica pacchetti di porte di completamento al servizio fax. La FSP deve passare questo valore opaco alla funzione PostQueuedCompletionStatus .

Valore restituito

Tipo: BOOL

Se la funzione ha esito positivo, il valore restituito è un valore 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

Il servizio fax controlla la DLL FSP per la funzione FaxDevVirtualDeviceCreation durante l'inizializzazione. Se il servizio fax esporta la funzione, il servizio fax presuppone che il provider presenterà dispositivi fax virtuali. Il servizio fax gestisce i dispositivi fax virtuali allo stesso modo in cui gestisce i dispositivi fax fisici. Dopo l'inizializzazione non esiste alcuna differenza tra la funzionalità o l'operazione di un servizio FSP che presenta dispositivi fax virtuali e uno che non li presenta.

Quando un FSP usa dispositivi fax fisici, TAPI e il provider di servizi di telefonia enumera i dispositivi per il servizio fax. Se la FSP non dispone di dispositivi fax fisici e presenta solo dispositivi fax virtuali, un TSP non esiste e TAPI non enumera i dispositivi. In questa istanza FaxDevVirtualDeviceCreation fornisce l'enumerazione del dispositivo fax virtuale per il servizio fax.

Requisiti

   
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

Creazione di un pacchetto di completamento

Funzioni del provider di servizi fax

FaxDevInitialize

FaxDevStartJob

LINEMESSAGE

PostQueuedCompletionStatus

Uso di un dispositivo virtuale per trasmettere un fax

Uso dell'API Provider di servizi fax

Dispositivi fax virtuali