Функция ComDBGetCurrentPortUsage (msports.h)
ComDBGetCurrentPortUsage возвращает сведения о номерах COM-портов, которые в настоящее время регистрируются как используемые в базе данных COM-портов.
Синтаксис
LONG ComDBGetCurrentPortUsage(
[in] HCOMDB HComDB,
[out, optional] PBYTE Buffer,
[in] DWORD BufferSize,
[in] ULONG ReportType,
[out, optional] LPDWORD MaxPortsReported
);
Параметры
[in] HComDB
Обработка базы данных COM-порта, возвращенной ComDBOpen.
[out, optional] Buffer
Указатель на буфер, выделенный вызывающим объектом, в котором подпрограмма возвращает сведения о номере COM-порта. Дополнительные сведения см. в разделе "Примечания".
[in] BufferSize
Указывает размер буфера, выделенного вызывающим объектом в байтах, в буфере.
[in] ReportType
Задает один из следующих флагов.
Flag | Значение |
---|---|
CDB_REPORT_BITS | Подпрограмма возвращает битовый массив в буфере , указывающий использование номера порта. |
CDB_REPORT_BYTES | Подпрограмма возвращает массив байтов в буфере , указывающий использование номера порта. |
[out, optional] MaxPortsReported
Указатель на значение, используемое подпрограммой для возврата количества портов, для которых подпрограмма возвращает сведения в буфере. Дополнительные сведения см. в разделе "Примечания".
Возвращаемое значение
ComDBGetCurrentPortUsage возвращает одно из следующих значений состояния.
Код возврата | Описание |
---|---|
|
Подпрограмма успешно вернула сведения об использовании номера порта. |
|
Одно из следующих значений имеет значение true: указанный дескриптор для базы данных COM-порта недопустим. Значения Buffer и MaxPortsReports имеют значение NULL. Тип отчета недопустим. |
|
Подпрограмме не удалось получить доступ к базе данных. Дополнительные сведения об ошибке можно получить, вызвав GetLastError. |
Комментарии
Задав параметру Bufferзначение NULL , а для Параметра MaxPortsReported — допустимый указатель, вызывающий объект может определить текущий размер базы данных COM-портов, то есть количество номеров COM-портов, которые в настоящее время находятся в базе данных. В этом случае подпрограмма устанавливает для параметра *MaxPortsReported размер базы данных. ReportType не используется.
Если параметр Buffer имеет значение, отличное от NULL, а ReportType является допустимым, подпрограмма выполняет следующие действия:
- Если параметр ReportType CDB_REPORT_BITS, подпрограмма возвращает битовый массив, указывающий использование номера порта. Каждый бит в выходном буфере соответствует номеру порта. При использовании отсчитываемого от нуля индекса бит нулевого байта в буфере соответствует COM1, бит 1 соответствует COM2 и т. д. Битовое значение 1 указывает, что номер порта используется, а нулевое значение указывает, что номер порта не используется. Число портов, для которых подпрограмма возвращает сведения об использовании, является минимальным размером текущей базы данных и числом битов в буфере (BufferSize*8). Если параметр MaxPortsReported не равен NULL, подпрограмма также задает для параметра *MaxPortsReported число номеров портов, для которых подпрограмма возвращает сведения об использовании. Если параметр BufferSize равен нулю, сведения об использовании порта не возвращаются, а параметр *MaxPortsReported имеет значение 0.
- Если параметр ReportType CDB_REPORT_BYTES, подпрограмма возвращает массив байтов, указывающий использование номеров портов. Каждый байт в возвращаемой информации соответствует другому номеру порта. При использовании отсчитываемого от нуля индекса нулевой байт в буфере соответствует COM1, байт 1 соответствует COM2 и т. д. Байтовое значение 1 указывает, что используется номер порта, а нулевое значение указывает, что номер порта не используется. Число номеров портов, для которых подпрограмма возвращает сведения об использовании, является минимальным для текущего размера базы данных и BufferSize. Подпрограмма не устанавливает *MaxPortsReported. Если параметр BufferSize равен нулю, сведения об использовании порта не возвращаются.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | msports.h (включая Msports.h) |
Библиотека | Msports.lib |
DLL | Msports.dll |