На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

IOCTL_SERIAL_LSRMST_INSERT



The IOCTL_SERIAL_LSRMST_INSERT DeviceIoControl operation enables or disables the placement of line status and modem status values into the regular data stream that an application acquires through the ReadFile function.

When this line-status and modem-status data placement mode is enabled, status values are preceded in the data stream by an escape character. The user-definable escape character is set by the IOCTL_SERIAL_LSRMST_INSERT operation. Status values consist of 1 to 3 BYTEs. See the Remarks section below for status value details.

dwIoControlCode = IOCTL_SERIAL_LSRMST_INSERT; // operation code
lpInBuffer; // address of input buffer
nInBufferSize; // size of input buffer
lpOutBuffer = NULL; // address of output buffer; not used; must be NULL
nOutBufferSize = 0; // size of output buffer; not used; must be zero
lpBytesReturned; // address of actual bytes of output


Parameters

lpInBuffer

Points to a buffer that contains a single BYTE.

If the BYTE is a nonzero value, it is the desired line-status and modem-status value escape character. The operation will turn the LSRMST_INSERT line-status and modem-status data placement mode on.
If the BYTE is zero, the operation will turn the LSRMST_INSERT line-status and modem-status data placement mode off.
The escape character can not be the XON or XOFF character.

nInBufferSize

Specifies the size, in bytes, of the buffer pointed to by lpInBuffer. For this operation, this value should be 1.

lpOutBuffer

Points to an output buffer. Not used with this operation. Set to NULL.

nOutBufferSize

Specifies the size, in bytes, of the buffer pointed to by lpOutBuffer. Not used with this operation. Set to zero.

lpBytesReturned

Points to a DWORD that receives the actual size, in bytes, of the data stored into lpOutBuffer.



Return Values

If the operation succeeds, DeviceIoControl returns TRUE.
If the operation fails, DeviceIoControl returns FALSE. To get extended error information, call GetLastError.

Remarks

Note that an application that uses this scheme must examine each character in the data stream to determine the presence of modem-status or line-status data.
The following values follow the designated escape character in the data stream if the LSRMST_INSERT mode has been turned on :

Value Meaning
SERIAL_LSRMST_ESCAPE Indicates the reception of the escape character itself into the data stream.
SERIAL_LSRMST_LSR_DATA Indicates that a line status change occurred, and data was available in the receive hardware buffer. Following this BYTE is a BYTE value of the line status register is the BYTE present in the receive hardware buffer when the line status change was processed.
SERIAL_LSRMST_LSR_NODATA Indicates that a line status change occurred, but no data was available in the receive hardware buffer.
SERIAL_LSRMST_MST Indicates that a modem status change occurred. Following this BYTE is a BYTE that is the value of the modem status register when the modem status change was processed.


See Also

DeviceIoControl, ReadFile


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

IOCTL_SERIAL_LSRMST_INSERT



Операция IOCTL_SERIAL_LSRMST_INSERT DeviceIoControl приспосабливается или выводит из строя размещение статуса строки и статус модема оценивается в регулярный поток данных, что приложение приобретается через функцию ReadFile.

Когда эта строка-статус и модем-статус размещения режима данных приспособлены, величины статуса предшествовали в потоке данных символом перехода. Пользователь-определимый символ перехода установлен операцией IOCTL_SERIAL_LSRMST_INSERT. Величины Статуса состоят из 1 в 3 БАЙТОВ. Смотри секцию Замечаний ниже для деталей величины статуса.

dwIoControlCode = IOCTL_SERIAL_LSRMST_INSERT; // операция кода lpInBuffer; // адрес входного буфера nInBufferSize; // размер входного буфера lpOutBuffer = НЕДЕЙСТВИТЕЛЬНЫЙ; // адрес выходного буфера; не использованное; должно быть NULL nOutBufferSize = 0; // размер выходного буфера; не использованное; должно быть нулем lpBytesReturned; // адрес фактических байтов выхода


Параметры

lpInBuffer

Точки на буфер, которые содержат единственный БАЙТ.

Если БАЙТ является ненулевой величиной, он - желаемый модем-статус перехода символа строки-статус и величина. Операция станет строкой-статусом LSRMST_INSERT и модем-статус размещения режима данных на.
Если БАЙТ является нулем, операция станет строкой-статусом LSRMST_INSERT и модем-статус размещения режима данных.
Символ перехода не может быть XON или символом XOFF.

nInBufferSize

Определяет размер, в байтах, буфера указанного, чтобы lpInBuffer. Для этой операции, эта величина должна быть 1.

lpOutBuffer

Точки на выходной буфер. Не использованное этой операцией. Установитесь на НЕДЕЙСТВИТЕЛЬНЫЙ.

nOutBufferSize

Определяет размер, в байтах, буфера указанного, чтобы lpOutBuffer. Не использованное этой операцией. Установитесь в нуль.

lpBytesReturned

Точки на DWORD, которые получают фактический размер, в байтах, данных загруженных в lpOutBuffer.



Обратные Величины

Если операция добивается успеха, ИСТИНА возврата DeviceIoControl.
Если операция терпит неудачу, ЛОЖЬ возврата DeviceIoControl. Для того, чтобы расширять информацию ошибки, назовите GetLastError.

Замечания

Отметьте, что приложение, которое использует эту схему должно изучить каждый символ в потоке данных, чтобы определять присутствие строки-статуса модема-статус или данные.
Следующее величин следует за определенным символом перехода в потоке данных если режим LSRMST_INSERT включен :

Значение Величины
SERIAL_LSRMST_ESCAPE Указывает сам прием символа перехода в поток данных.
SERIAL_LSRMST_LSR_DATA Указывает, что изменение статуса строки происходило, и данные было доступно в аппаратном буфере приемника. Следующее этого БАЙТА является величиной БАЙТА линии регистра статуса - настоящее БАЙТА в аппаратном буфере приемника когда линия изменения статуса была обработана.
SERIAL_LSRMST_LSR_NODATA Указывает, что изменение статуса строки происходило, но никакие данные не было доступно в аппаратном буфере приемника.
SERIAL_LSRMST_MST Указывает, что изменение статуса модема происходило. Следующее этого БАЙТА является БАЙТОМ, который - величина регистра статуса модема когда изменение статуса модема было обработано.


Смотри Также

DeviceIoControl, ReadFile


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz