首页 / 知识
关于c ++:找出哪个进程在USB设备句柄上具有排他锁
2023-04-12 22:42:00

Find out which process has an exclusive lock on a USB device handle我有一个使用CreateFile()API读取/写入USB设备的库。 该设备恰好实现了HID设备配置文件,因此与Microsoft的HID类驱动程序兼容。 系统上安装的其他一些应用程序正在以读/写模式(没有共享模式)打开设备。 这会阻止我的库(以及占用它的所有资源)与设备一起使用。 我想这是与HID兼容的设备的困扰-其他驱动程序软件(鼠标,控制器,PHIDGETS等)可能无法配合使用。 无论如何,设备文件路径的格式为:
我正在尝试使用代码打开它,例如:
我考虑过像SysInternals的FileMon或Process Monitor这样的工具。 但是我似乎无法报告上面列出的设备文件句柄的使用情况。 您是否尝试过sysinternals的名为handle的工具? 无论如何,两个窗口都不会这样做(显示锁定该设备的应用程序的名称):当您尝试弹出USB设备时,Windows只是说该设备正在使用中,无法立即删除。
您可以通过打开设备句柄来请求读或写权限,并仅使用功能报告与之交互,这是您可以做的一个窍门。扬·阿克森(Jan Axelson)在有关USB HID设备的书中提到了这一技巧。我相信这可以解决排他锁的问题,例如,当您尝试打开W??indows认为系统键盘或鼠标的设备的句柄时,会遇到该问题。即使您无法读取或写入句柄,您仍然可以使用 这是我从Magtek读卡器中读取的内容:
尝试这些选项,看看是否至少可以阅读该设备。 我知道您在这里的痛苦...我发现USB HID文档在很多地方基本上是错误的。 [编辑]在这个问题上没有很多。这是一个代码项目链接,该链接在底部的线程中轻轻触及了主题。听起来好像是键盘还是鼠标窗口专门抓住了它。 很酷-我会尝试这些选项,因为按照我的意图,它们可能是更好的默认设置。不幸的是,我知道我的设备在那里,以后我最终将需要读/写访问权限(一旦我检查了描述符并确认它确实在我的设备中)。 这意味着我的真正目标是知道正在使用什么,因此我可以通知客户/用户:"嘿,'iexplore.exe'当前正在使用您的SuperWidget设备。您必须将其关闭才能使用SuperWidget应用程序。" (如果不是在应用程序级别,则至少在电话支持级别。) 我忘了提到GetLastError()报告的Windows错误是:
(因此,假设没有其他代表FILE_SHARE_NONE的共享选项,可能会打开文件)。 [编辑]
|
最新内容
相关内容
Python学习之进程和线程
Python学习之进程和线程,代码,平台,系统,线程,进程,标准,数据,服务,培训,管理,对于操作系统来说,一个任务就是一个进程(Process),比如打开一个Python文件读取相关方法
Python文件读取相关方法,数据,位置,文件,中行,培训,方法,字节,内容,结果,字符串,我们知道,对文件的读取操作需要将文件中的数据加载到内存中,而Python文件读取相关方法
Python文件读取相关方法,数据,位置,文件,中行,培训,方法,字节,内容,结果,字符串,我们知道,对文件的读取操作需要将文件中的数据加载到内存中,而Pytorch入门之配置云服务器环境
Pytorch入门之配置云服务器环境,环境,平台,流程,代码,数据,工具,平稳,网络,时间,网上,Pytorch简介Pytorch底层是Torch框架,Torch框架是一个科Python进程、线程、协程的区别
Python进程、线程、协程的区别,地址,单位,线程,入口,状态,培训,进程,区别,资源,空间,简述进程、线程、协程的区别以及应用场景?线程是指进程Python文件的读取、创建、追加、删
Python文件的读取、创建、追加、删除、清空,数字,标准,培训,文件,整数,内容,缓冲区,字符串,文件名,选项,一,用python创建一个新文件,内容是0到9关于 Python 配置文件的使用方法
关于 Python 配置文件的使用方法,代码,灵活,项目,名字,培训,模块,程序,方式,内容,用户,很多项目对配置文件的使用做法是:配置文件写在一个或python多线程和多进程之间的联系
python多线程和多进程之间的联系,进程,培训,通信,标准,管理,代理,线程,模块,之间,全部,关于多线程的大概讲解:在Python的标准库中给出了2个模python如何读取文件的数据
python如何读取文件的数据,数据,概念,培训,文件,函数,内容,模式,字符,对象,字节,使用read()函数读取文件时,如果文件过大,则一次读取全部内容到python如何读取列表中元素的位置?
python如何读取列表中元素的位置?,位置,数据,异常,培训,字符串,元素,索引,方法,示例,结果,python读取列表中元素位置的方法:1、使用index()方pdf如何用python读取?
pdf如何用python读取?,数据,培训,代码,文件,内容,共享资源,图像,命令,字体,以上,python中可以使用pdfminer库来读取PDF文件中的内容。安装命python中怎么读取doxc文件?
python中怎么读取doxc文件?,培训,文档,文件,路径,命令,以上,更多,内容,python中可以使用python-docx库读取doxc文件,我们可以使用pipinstall