首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HID USB ReadFile()在大量下载过程中丢失数据包

HID USB ReadFile()在大量下载过程中丢失数据包
EN

Stack Overflow用户
提问于 2022-02-07 09:06:07
回答 1查看 165关注 0票数 0

我实现了一个HID应用程序,它似乎可以很好地连接、读取和写入外部USB设备。问题是当试图读取大数据文件时,一些数据包会丢失。

下面是使用以下代码im:

代码语言:javascript
复制
DWORD   result;
uint8_t u8_dataBuffer[size] = { 0 };
DWORD   bytesRead;
ReadFile(Handle, u8_dataBuffer,
    size + 1,
    &bytesRead,
    (LPOVERLAPPED)&m_HidOverlapped)) 


result = WaitForSingleObject(Handle, 6000);
switch (result) {
    case WAIT_OBJECT_0: {
        break;
    }
    case WAIT_TIMEOUT: {
        result = CancelIo(Handle);
        CloseHandle(Handle);
        deviceFound = false;
        break;
    }
    default: {
        break;
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-08 10:22:55

HID报告保存在环形缓冲区中。因此,如果您没有足够快地读取所有挂起的输入报告--它们可能会丢失。此缓冲区的大小可通过HID设备句柄上的SetNumInputBuffers调用或缓冲器 IOCTL进行更改。

默认情况下,HID类驱动程序维护一个包含32个报表的输入报表环缓冲区。

有关其他信息,请参见HID Reports#Dropped HID报告的故障排除

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71015912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档