我的程序中有一个线程试图CreateFile以锁定USB设备,但是,有时不是失败,而是需要永远。还有人遇到这个问题吗?有什么方法可以设置此函数的超时时间吗?代码如下:

string file = @"\\.\" + DriveLetter[0] + ":";
handle = CreateFile(filename, GENERIC_READ, FILE_SHARE_WRITE, IntPtr.Zero, 0x3, 0, IntPtr.Zero);

谢谢。

最佳答案

你想把它锁起来让它不可访问-作为一个设备-或者“阻止”它的分离(例如,它是一支钢笔)?
编辑:抱歉,我不允许添加评论:Sanyways。如果锁定很重要,那么可以使用devcon:http://support.microsoft.com/kb/311272和示例代码:http://www.programmersheaven.com/mb/dotnet/337951/337951/programatically-enable--disable-usb-port-using-cnet/轻松完成此操作,以防您不想一直将exe与参数一起使用。

关于c# - 为什么CreateFile需要永远?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16170842/

10-14 15:14