我的程序中有一个线程尝试CreateFile
以锁定USB设备,但是,有时候不是失败,它需要永远。还有其他人遇到过这个问题吗?有什么办法可以为这个功能设置超时吗?代码是这样的:
string file = @"\\.\" + DriveLetter[0] + ":";
handle = CreateFile(filename, GENERIC_READ, FILE_SHARE_WRITE, IntPtr.Zero, 0x3, 0, IntPtr.Zero);
感谢。
答案 0 :(得分:1)
您想锁定它以使其无法访问 - 作为设备 - 或“阻止”分离它(例如它是一支笔)?
编辑:对不起,我不允许添加评论:S
无论如何。如果锁定很重要,您可以使用devcon http://support.microsoft.com/kb/311272
和示例代码轻松完成此操作:
http://www.programmersheaven.com/mb/dotnet/337951/337951/programatically-enable--disable-usb-port-using-cnet/如果您不想使用exe一直都是params。
答案 1 :(得分:1)
永远的采取似乎与主要形式线程存在某种冲突。
最后,我将包含CreateFile
操作的锁定函数移动到一个单独的线程,在那里它不会与UI线程竞争,现在它可以正常工作。