Condividi tramite


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.