我写了一小段代码来打开/closures使用DeviceIoControl API和适当的IOCTL的CD / DVD驱动器托盘,但我似乎无法检查托盘状态。
根据msdn页( http://msdn.microsoft.com/en-us/library/aa363404%28v=VS.85%29.aspx),IOCTL_STORAGE_CHECK_VERIFY应该成功,如果驱动器加载有效的媒体和否则通过适当的错误代码失败。
所以当DeviceIoControl失败的时候,我预计托盘被打开的时候21成为lasterror ,托盘被closures的时候会是1112 ,但是设备中没有媒体。 然而它只会返回21直到适当的媒体加载。
我错过了什么吗? 有没有其他方法来找出托盘状态?
在windows Server 2012上运行.NET 4.0上的服务构build时发生System.Configuration.ConfigurationException
本地LDAP服务器在windows 7上进行开发
用graphics自定义字体样式
将.Net Web Application部署到非windows服务器
无法以recursion方式删除用户文件夹中的文件夹。 在mscorlib.dll中发生“System.UnauthorizedAccessException”
最好的祝福,
无法在计算机上打开服务控制pipe理器
pypy导入clr在windows上失败
运行WPF程序时防止windows工作站(桌面)locking
在IIS中的IP地址和域名限制通过PowerShell
如何知道windows *** 作系统提供的隔离存储空间?
那么,这个API的文档说明它返回是否在驱动器中有一个磁盘,而不管托盘是否打开。 关于哪个错误代码返回的具体要求没有记录。 在这两种情况下我也得到21分。
我查阅了文档,找不到任何记录的方式去做你所要求的。 对于大多数应用来说,托盘是否打开并不是那么有趣。
我无法找到读取驱动器托盘状态的方法。 相反,我正在检查执行d出命令所需的时间,因为如果d出需要超过100毫秒才能返回,我假设实际上d出了介质。 如果d出命令完成得太快,则假定托盘已打开并需要关闭。 这似乎是伎俩来实现一个打开/关闭切换功能。 时间会说:)
总结以上是内存溢出为你收集整理的检查CD-ROM托盘状态全部内容,希望文章能够帮你解决检查CD-ROM托盘状态所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)