Compartilhar via


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.