Partilhar via


comunicação/datamodem

A classe de dispositivo comm/datamodem consiste em dispositivos datamodem. Você acessa esses dispositivos usando a de arquivo e as funções de comunicação . Os dispositivos nesta classe estão associados a dispositivos de linha que suportam o tipo de mídia LINEMEDIAMODE_DATAMODEM, que é especificado no dwMediaModes membro da estrutura deLINEDEVCAPSpara o dispositivo de linha.

A função lineGetID preenche uma estrutura de VARSTRING, definindo dwStringFormat ao valor STRINGFORMAT_BINARY e anexando esses 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ções aberta. Este membro é 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 abre a própria porta para obter controle direto do hardware de comunicações, mas só é 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, em seguida, configura a porta usando as configurações especificadas pela funçãolineSetDevConfig. Você pode definir opções de configuração adicionais para o dispositivo usando funções de comunicação com a alça retornada.

O membro szDeviceName é uma cadeia de caracteres null-terminated que especifica o nome da porta de comunicação 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ção e, de preferência, antes de usar a função lineDeallocateCall para desalocar a chamada, você deve fechar a porta usando a funçãoCloseHandle.

Ao usar o lineGetDevConfig e funções de lineSetDevConfig, alguns provedores de serviços exigem que os dados de configuração para essa 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;

A seguir estão as informações de configuração do dispositivo para uso com olineGetDevConfig e funções lineSetDevConfig.

dwSize

Soma do tamanho da estrutura de DEVCFGHDR e do tamanho real da estruturaCOMMCONFIG.

dwVersion

Número da versão do Unimodem DevConfig estrutura. Este membro pode ser MDMCFG_VERSION (0x00010003).

fwOptions

Sinalizadores de opção que aparecem na página Opção Unimodem. Este membro pode ser uma combinação destes valores:

TERMINAL_PRE (1)

Exibe a tela do pré-terminal.

TERMINAL_POST (2)

Exibe a tela pós-terminal.

MANUAL_DIAL (4)

Marca o telefone manualmente, se for capaz de fazê-lo.

LAUNCH_LIGHTS (8)

Exibe o ícone do modem na área de status da barra de tarefas.

Somente o valor LAUNCH_LIGHTS é definido por padrão

wWaitBong

Número de segundos (em dois segundos de granularidade) para substituir a espera pelo tom de crédito ($).

Commconfig

COMMCONFIG estrutura que pode ser usada com as funções de comunicação e configuração do modem.