У меня очень странная проблема.Я использую ReadFile () для чтения данных с устройства, подключенного к ПК через USB.Поскольку данные для чтения принимаются кусками по 64 байта, всегда вызывается ReadFile () с чтением по 64 байта.Однако, когда мне нужно прочитать кадр менее чем 64 байта, иногда происходит сбой.
Я приведу пример написанного кода:
//Memory allocation done to read 100 bytes from device - This value is known in prior and hence memory is allocated exactly
new(100bytes);
// First read of 64 bytes
ReadFile(64)
// Second read of 64 bytes
ReadFile(64)
-> Здесь данные, которые будут отправлены с устройства, будут только 100-64 = 36. Следовательно, даже если я скажучтение для 64 байтов, не было бы сценария, где данные больше, чем 36 байтов.следовательно, этот код должен работать (хотя я знаю, что неправильно выделять меньше памяти и вызывать ReadFile для размера, превышающего выделение памяти).
Вопрос: Может ли сбой ReadFile (), если чтение данных выполняется для большего количества байтовчем выделение памяти (хотя мы знаем, какой точный размер данных мне нужно прочитать)
PS: причиной такого рода реализации был небольшой недостаток в разработке кода, который был разработан.