Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


[E-154] Объем данных, асинхронно считываемый ReadData()

Вы не вошли.

 Поиск | Регистрация | Вход 

30.07.2015 10:45:56
#1

Участник
Здесь с 30.07.2015
Сообщений: 3

[E-154] Объем данных, асинхронно считываемый ReadData()

Я не могу понять, как определить объем данных, который будет считан функцией ReadData(). Я взял за основу комплектный пример асинхронного чтения, и стал обнулять буфер данных перед вызовом ReadData(), а потом подсчитывать ненулевые элементы в соответствующей области буфера.

Как оказалось, их количество не совпадало с NumberOfWordsToPass, возвращенным из ReadData(). Для 32 запрошенных элементов я получал 33 измененных, для 64 - то 65, то 67, а для 128 количество затронутых элементов доходило до 242.

Почему такое поведение не упомянуто в документации, и как мне определить размер буфера для предотвращения выхода за его границу?

01.08.2015 10:39:34
#2

Сотрудник "Л Кард"
Здесь с 24.04.2014
Сообщений: 1,522

Re: [E-154] Объем данных, асинхронно считываемый ReadData()

Функция ReadData() является обёрткой над штатной WinAPI функцией ReadFile(). Поэтому:
1. Какую версию библиотеки Lusbapi Вы используете?
2. Хорошо было бы взглянуть на исходный текст с Вашими исследованиями.