comm/datamodem
La classe di dispositivo comm/datamodem è costituita da dispositivi datamodem. È possibile accedere a questi dispositivi usando le funzionidi comunicazione e file. I dispositivi in questa classe sono associati a dispositivi line che supportano il tipo di supporto LINEMEDIAMODE_DATAMODEM, specificato nel membro dwMediaModes della struttura LINEDEVCAPS per il dispositivo line.
La funzione lineGetID riempie una struttura VARSTRING , impostando dwStringFormat sul valore STRINGFORMAT_BINARY e aggiungendo questi membri aggiuntivi:
HANDLE hComm; // file handle to data modem
CHAR szDeviceName[1]; // name of data modem
Il membro hComm è l'handle della porta di comunicazione aperta. Questo membro è NULL se la porta non è ancora aperta o se il parametro dwSelect di lineGetID non è il valore LINECALLSELECT_CALL. Se una chiamata è attiva, il provider di servizi apre in genere la porta stessa per ottenere il controllo diretto dell'hardware delle comunicazioni, ma è necessario restituire un handle valido solo se la riga è connessa. Il provider di servizi apre la porta usando il valore FILE_FLAG_OVERLAPPED e quindi configura la porta usando le impostazioni specificate dalla funzione lineSetDevConfig . È possibile impostare opzioni di configurazione aggiuntive per il dispositivo usando le funzioni di comunicazione con l'handle restituito.
Il membro szDeviceName è una stringa con terminazione Null che specifica il nome della porta di comunicazione associata alla riga, all'indirizzo o alla chiamata.
Se hComm è un handle valido, è possibile usarlo nelle chiamate successive alle funzioni di file, ad esempio ReadFile e WriteFile, per inviare e ricevere dati sulla chiamata. Al termine dell'utilizzo della porta di comunicazione e preferibilmente prima di usare la funzione lineDeallocateCall per deallocare la chiamata, è necessario chiudere la porta usando la funzione CloseHandle .
Quando si usano le funzioni lineGetDevConfig e lineSetDevConfig , alcuni provider di servizi richiedono che i dati di configurazione per questa classe di dispositivo abbiano il formato seguente:
typedef struct tagDEVCFG {
DEVCFGHDR dfgHdr;
COMMCONFIG commconfig;
} DEVCFG, *PDEVCFG, FAR* LPDEVCFG;
// Device setting information
typedef struct tagDEVCFGDR {
DWORD dwSize;
DWORD dwVersion;
WORD fwOptions;
WORD wWaitBong;
} DEVCFGHDR;
Di seguito sono riportate le informazioni di configurazione del dispositivo da usare con le funzioni lineGetDevConfig e lineSetDevConfig .
-
dwSize
-
Somma delle dimensioni della struttura DEVCFGHDR e delle dimensioni effettive della struttura COMMCONFIG .
-
dwVersion
-
Numero di versione della struttura Unimodem DevConfig . Questo membro può essere MDMCFG_VERSION (0x00010003).
-
fwOptions
-
Flag di opzione visualizzati nella pagina Opzione Unimodem. Questo membro può essere una combinazione di questi valori:
-
TERMINAL_PRE (1)
-
Visualizza la schermata pre-terminale.
-
TERMINAL_POST (2)
-
Visualizza la schermata post-terminale.
-
MANUAL_DIAL (4)
-
Chiama manualmente il telefono, se in grado di farlo.
-
LAUNCH_LIGHTS (8)
-
Visualizza l'icona del modem nell'area di stato della barra delle applicazioni.
Solo il valore LAUNCH_LIGHTS è impostato per impostazione predefinita
-
-
wWaitBong
-
Numero di secondi (in due secondi di granularità) per sostituire l'attesa del tono di credito ($).
-
Commconfig
-
Struttura COMMCONFIG che può essere utilizzata con le funzioni di configurazione dei modem e delle comunicazioni.