UVCXU扩展单元调试工具SET_CUR时获取数据长度错误0x800700ea
2022-02-10
695
0
在开发UVC扩展单元调试工具遇到的一个问题就是获取SET_CUR时的有效数据长度。
进行数据的SET_CUR和GET_CUR,是通过KsProperty函数实现的。函数声明如下:
NTSTATUS KsProperty(
[in] PKSPROPERTY Property,
[in] ULONG PropertyLength,
[in, out] PVOID PropertyData,
[in] ULONG DataLength,
[out] ULONG *BytesReturned
);
可以看到BytesReturned是返回的数据长度,不过这也只适用于GET_CUR的请求,如果是SET_CUR就一直是0。自己后来就一直研究实际的长度是怎么来的,没弄清楚。后来请教了临江仙大佬才知道,是需要先进行GET_CUR请求,这时会获取数据的长度即执行GET_LEN,通过这个返回的数据长度再进行SET_CUR请求。
不过一个很奇怪的问题是,在GET_CUR时,会返回HRESULT为0x800700ea错误,不过数据长度确实获取到了。
所以这里做个标记,后面有空再研究一下。
昨晚上看了一下HRESULT,这里放一个链接,可以对照的看一下。http://www.pnpon.com/article/detail-325.html
HID人机交互QQ群:564808376
UAC音频QQ群:218581009
UVC相机QQ群:331552032
BOT&UASP大容量存储QQ群:258159197
STC-USB单片机QQ群:315457461
USB技术交流QQ群2:580684376
USB技术交流QQ群:952873936