comm/datamodem
A classe de dispositivo comm/datamodem consiste em dispositivos datamodem. Você acessa esses dispositivos usando as funções de arquivo e comunicação. Os dispositivos nessa classe são associados a dispositivos de linha que dão suporte ao tipo de mídia LINEMEDIAMODE_DATAMODEM, que é especificado no membro dwMediaModes da estrutura LINEDEVCAPS para o dispositivo de linha.
A função lineGetID preenche uma estrutura VARSTRING , definindo dwStringFormat como o valor STRINGFORMAT_BINARY e acrescentando estes membros adicionais:
HANDLE hComm; // file handle to data modem
CHAR szDeviceName[1]; // name of data modem
O membro hComm é o identificador da porta de comunicação aberta. Esse membro será NULL se a porta ainda não estiver aberta ou se o parâmetro dwSelect de lineGetID não for o valor LINECALLSELECT_CALL. Se uma chamada estiver ativa, o provedor de serviços normalmente abrirá a própria porta para obter controle direto do hardware de comunicações, mas só será necessário retornar um identificador válido se a linha estiver conectada. O provedor de serviços abre a porta usando o valor FILE_FLAG_OVERLAPPED e configura a porta usando as configurações especificadas pela função lineSetDevConfig . Você pode definir opções de configuração adicionais para o dispositivo usando funções de comunicação com o identificador retornado.
O membro szDeviceName é uma cadeia de caracteres terminada em nulo que especifica o nome da porta de comunicações associada à linha, endereço ou chamada.
Se hComm for um identificador válido, você poderá usá-lo em chamadas subsequentes para funções de arquivo, como ReadFile e WriteFile, para enviar e receber dados na chamada. Quando terminar de usar a porta de comunicações e, preferencialmente, antes de usar a função lineDeallocateCall para desalocar a chamada, feche a porta usando a função CloseHandle .
Ao usar as funções lineGetDevConfig e lineSetDevConfig , alguns provedores de serviços exigem que os dados de configuração dessa classe de dispositivo tenham o seguinte formato:
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;
Veja a seguir as informações de configuração do dispositivo para uso com as funções lineGetDevConfig e lineSetDevConfig .
-
Dwsize
-
Soma do tamanho da estrutura DEVCFGHDR e do tamanho real da estrutura COMMCONFIG .
-
Dwversion
-
Número de versão da estrutura Unimodem DevConfig . Esse membro pode ser MDMCFG_VERSION (0x00010003).
-
fwOptions
-
Sinalizadores de opção que aparecem na página opção Unimodem. Esse membro pode ser uma combinação desses valores:
-
TERMINAL_PRE (1)
-
Exibe a tela pré-terminal.
-
TERMINAL_POST (2)
-
Exibe a tela pós-terminal.
-
MANUAL_DIAL (4)
-
Disca o telefone manualmente, se for capaz de fazer isso.
-
LAUNCH_LIGHTS (8)
-
Exibe o ícone de modem na área status da barra de tarefas.
Somente o valor de LAUNCH_LIGHTS é definido por padrão
-
-
wWaitBong
-
Número de segundos (em granularidade de dois segundos) para substituir a espera pelo tom de crédito ($).
-
Commconfig
-
Estrutura COMMCONFIG que pode ser usada com as funções de configuração de comunicações e modem.