Поделиться через


comm/datamodem

Класс устройств comm/datamodem состоит из устройств datamodem. Доступ к этим устройствам можно получить с помощью функций файлов и коммуникаций. Устройства в этом классе связаны с линейными устройствами, поддерживающими тип мультимедиа LINEMEDIAMODE_DATAMODEM, который указан в элементе dwMediaModes структуры LINEDEVCAPS для линейного устройства.

Функция lineGetID заполняет структуру VARSTRING , задав dwStringFormat значением STRINGFORMAT_BINARY и добавляя следующие дополнительные элементы:

HANDLE hComm;            // file handle to data modem
CHAR   szDeviceName[1];  // name of data modem

Член hComm — это дескриптор открытого порта связи. Этот член имеет значение NULL , если порт еще не открыт или параметр dwSelectlineGetID не является LINECALLSELECT_CALL значением. Если вызов активен, поставщик услуг обычно открывает сам порт, чтобы получить прямой контроль над оборудованием связи, но требуется только для возврата допустимого дескриптора, если линия подключена. Поставщик услуг открывает порт, используя значение FILE_FLAG_OVERLAPPED, а затем настраивает порт с помощью параметров, заданных функцией lineSetDevConfig . Вы можете задать дополнительные параметры конфигурации для устройства с помощью функций связи с возвращенным дескриптором.

Член szDeviceName является строкой, завершающейся null, которая указывает имя порта связи, связанного с линией, адресом или вызовом.

Если hComm является допустимым дескриптором, его можно использовать в последующих вызовах функций файлов, таких как ReadFile и WriteFile, для отправки и получения данных при вызове. Завершив использование порта связи и предпочтительно перед использованием функции lineDeallocateCall для отмены выделения вызова, необходимо закрыть порт с помощью функции CloseHandle .

При использовании функций lineGetDevConfig и lineSetDevConfig некоторые поставщики услуг требуют, чтобы данные конфигурации для этого класса устройств имели следующий формат:

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;

Ниже приведены сведения о конфигурации устройства для использования с функциями lineGetDevConfig и lineSetDevConfig .

dwSize

Сумма размера структуры DEVCFGHDR и фактического размера структуры COMMCONFIG .

dwVersion

Номер версии структуры Unimodem DevConfig . Этот элемент может быть MDMCFG_VERSION (0x00010003).

fwOptions

Флаги параметров, отображаемые на странице "Unimodem Option". Этот элемент может быть сочетанием следующих значений:

TERMINAL_PRE (1)

Отображает экран предварительного терминала.

TERMINAL_POST (2)

Отображает экран после завершения терминала.

MANUAL_DIAL (4)

Набирает телефон вручную, если это возможно.

LAUNCH_LIGHTS (8)

Отображает значок модема в области состояния панели задач.

По умолчанию задано только значение LAUNCH_LIGHTS

wWaitBong

Количество секунд (степень детализации за две секунды) для замены ожидания тона кредита ($).

Commconfig

Структура COMMCONFIG, которая может использоваться с функциями конфигурации связи и модема.