Udostępnij przez


comm/datamodem

Klasa urządzenia comm/datamodem składa się z urządzeń datamodem. Dostęp do tych urządzeń można uzyskać przy użyciu plików i funkcji komunikacji . Urządzenia w tej klasie są skojarzone z urządzeniami liniowymi obsługującymi typ nośnika LINEMEDIAMODE_DATAMODEM określony w dwMediaModes składowej LINEDEVCAPS struktury urządzenia liniowego.

Funkcja lineGetID wypełnia strukturę VARSTRING, ustawiając dwStringFormat na wartość STRINGFORMAT_BINARY i dołączając następujące dodatkowe elementy członkowskie:

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

Elementem członkowskim hComm jest obsługa otwartego portu komunikacyjnego. Ten element członkowski jest null, jeśli port nie jest jeszcze otwarty lub jeśli parametr dwSelect lineGetID nie jest wartością LINECALLSELECT_CALL. Jeśli wywołanie jest aktywne, dostawca usług zazwyczaj otwiera sam port, aby uzyskać bezpośrednią kontrolę nad sprzętem komunikacji, ale jest wymagany tylko do zwrócenia prawidłowego uchwytu, jeśli linia jest połączona. Dostawca usług otwiera port przy użyciu wartości FILE_FLAG_OVERLAPPED, a następnie konfiguruje port przy użyciu ustawień określonych przez funkcję lineSetDevConfig. Dodatkowe opcje konfiguracji dla urządzenia można ustawić przy użyciu funkcji komunikacji z zwróconym uchwytem.

Element członkowski szDeviceName jest o wartości null-terminated ciąg określający nazwę portu komunikacji skojarzonego z wierszem, adresem lub wywołaniem.

Jeśli hComm jest prawidłowym dojściem, można go użyć w kolejnych wywołaniach funkcji plików, takich jak ReadFile i WriteFile, do wysyłania i odbierania danych w wywołaniu. Po zakończeniu korzystania z portu komunikacji, a najlepiej przed użyciem funkcji lineDeallocateCall, należy zamknąć port przy użyciu funkcji closeHandle.

W przypadku korzystania z funkcji lineGetDevConfig i lineSetDevConfig niektórzy dostawcy usług wymagają, aby dane konfiguracji dla tej klasy urządzeń miały następujący format:

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;

Poniżej przedstawiono informacje o konfiguracji urządzenia do użycia z lineGetDevConfig i lineSetDevConfig funkcji.

dwSize

Suma rozmiaru struktury DEVCFGHDR oraz rzeczywistego rozmiaru struktury COMMCONFIG.

dwVersion

Numer wersji struktury Dev Config unimodem. Ten element członkowski może być MDMCFG_VERSION (0x00010003).

fwOptions

Flagi opcji wyświetlane na stronie Opcja unimodem. Ten element członkowski może być kombinacją tych wartości:

TERMINAL_PRE (1)

Wyświetla ekran przed terminalem.

TERMINAL_POST (2)

Wyświetla ekran po terminalu.

MANUAL_DIAL (4)

Wybiera telefon ręcznie, jeśli jest w stanie to zrobić.

LAUNCH_LIGHTS (8)

Wyświetla ikonę modemu w obszarze stanu paska zadań.

Domyślnie ustawiona jest tylko wartość LAUNCH_LIGHTS

wWaitBong

Liczba sekund (w ciągu dwóch sekund szczegółowości) w celu zastąpienia oczekiwania na ton środków ($).

Commconfig

struktura COMMCONFIG, która może być używana z funkcjami konfiguracji komunikacji i modemu.