c++ - 使用 WinUsb_ControlTransfer 时的访问冲突读取位置
问题描述
我找不到关于 winusb 如何工作的任何好的示例或文档。我正在尝试与设备交互,但调用我的发送数据函数会导致访问冲突。
void WUSB_SendData(WINUSB_INTERFACE_HANDLE hndl, uint16_t rType, uint16_t req, uint16_t val, uint16_t ind, byte* data, uint16_t dLen) {
WINUSB_SETUP_PACKET wsp;
ZeroMemory(&wsp, sizeof(WINUSB_SETUP_PACKET));
wsp.RequestType = (rType | 0x00);
wsp.Request = req;
wsp.Value = val;
wsp.Index = ind;
wsp.Length = dLen;
ULONG sentData = 0;
WinUsb_ControlTransfer(hndl, wsp, (PUCHAR)data, dLen, &sentData, 0);
}
这被称为使用
WUSB_SendData(this->dd.DeviceHandle, 0x41, 0x54, 0, 0, (byte*)("\x01"), 1);
我尝试将要传输的数据存储在一个没有改变任何东西的数组中。我尝试将其设置为不同的数据类型,我尝试更改长度的数据类型,但没有任何效果。我也尝试过使用来自 winusb 的 winusb。Lib和从通过LoadLibraryA直接访问winusb.dll。
确切的错误是Exception thrown at 0x00007FF871462CE4 (winusb.dll) in winseek.exe: 0xC0000005: Access violation reading location 0x0000000000000590.
解决方案
推荐阅读
- python - 从 docker 容器中获取 sftp 服务器的主机 url
- angularjs - 在授权解决之前加载 AngularJS 模板 URL
- less - LESS:以类似于“嵌套规则”的方式创建变量
- laravel - 在 Laravel 5.8 中调用未定义的方法 Maatwebsite\Excel\Excel::create()
- python-3.x - 当我在 chrome web 驱动程序中加载带有活动登录名和书签等的用户数据 chrome 配置文件时,web 驱动程序 add_experimental_options () 不起作用
- lua - Roblox Studio Lua:使用本地脚本克隆
- sql - 如何从 Pentaho-Kettle 中基于动态选择的 sql 查询中获取结果集?
- ansible - Ansible jinja2 未使用 with_items 连接到列表
- javascript - 具有多个订阅的淘汰单个 observable
- javascript - 如何解决invariant Violation的错误:Native module cannot be null()