我也遇到了这个问题.

我的嵌入式USB只读大容量存储项目监视主机中的SCSI命令.对于Mac OS X(10.5):在插件上,OS X驱动程序可以很好地告诉设备防止介质被移除(SCSI命令PREVENT / ALLOW MEDIUM REMOVAL).我的设备接受此命令.稍后,当用户发出设备应该退出的信号时,OS X再次非常好地再次发送带有ALLOW标志的PREVENT / ALLOW REMOVAL,然后发送SCSI START / STOP指示停止(或退出,不记得了).美丽.

但是,Windows XP似乎只是停止发送SCSI命令TEST UNIT READY.我看过; “安全删除硬件”不会发送任何SCSI信号,而只会导致TEST UNIT READY信号停止发出,这大约是每秒进行一次.基本上,Windows只会崩溃.

TEST UNIT READY超时可以在Windows上使用,但这是检测设备停止条件的糟糕方法.另外,由于OS X不能像Windows一样每秒对我的设备执行ping操作,因此它不适用于OSX.我会得到误报.

2009年11月15日更新

Sondergaard在这里汇报.

很大程度上取决于设备对USB Mass-Storage-Class SCSI“查询”命令的响应自身是否标识为“可移动”或“固定”.

如果该标志显示为可移动,那么我可以判断Windows XP用户是否“停止”了我的设备的唯一方法是每秒准备好退出测试单元的命令.如果该标志未标明可移动,则没有常规的“测试单元就绪”命令流. USB挂起也不能算在内,大约有1/4的测试“安全删除”没有发送USB挂起.不知道为什么它不一致.因此,如果您想确定,我为与WINDOWS XP仅兼容而做出的最佳建议是将“可移动”作为对INQUIRY的响应,寻找常规的“ TEST UNIT READY”命令,然后当它们停止运行时,请考虑将您安全地删除.

OS X(10.6)是另一回事.正如我在上面所写,这很有礼貌.它发送SCSI START / STOP来启动或降速设备,有时无需用户输入即可全部独立运行.但这意味着,如果您将STOP解释为说用户正在通过,并以设备内部的任何丑陋方式断开连接,则OS X在尝试再次旋转磁盘时可能会感到非常困惑.如果您的设备被标记为可移动,则OS X将在STOP之前发送ALLOW REMOVAL命令(或者在这种情况下是EJECT?),这表明它已经通过.

我没有穷尽尝试其他配置.我的应用程序是只读的,具有两个分区,并且必须标识为“不可移动”,因为Windows XP拒绝确认多个可移动USB驱动器分区(OS X两种方式都没有问题).因此,我的大部分测试都是在这种配置下进行的.

希望这可以帮助.

linux检测usb程序占用,在Linux中检测USB大容量存储器弹出/卸载相关推荐

  1. 变分模态分解_Android小部件示例中的模态对话框(弹出)

    变分模态分解 在此示例中,我们将看到如何在主屏幕中创建一个可以打开弹出对话框的Android小部件. 如您所知,Android Widgets是小型应用程序,基本上可以做两件事. 按下时启动新的活动, ...

  2. 小程序地图插入图标后 怎么实现点击图标弹出窗口

    1问题描述 本次博客的要解决的问题是:小程序地图插入图标后 怎么实现点击图标弹出窗口 如图: 2算法描述点击标记点获取数据 想要在地图等页面上显示弹窗,是使用的是marke的方法,点击标记点获取数据 ...

  3. win10卸载程序灾难性故障_win10一直弹出卸载或更改应用程序的具体处理方法

    近日有网友反映说自己的win10正式版电脑出现了一直弹出卸载或更改应用程序的情况,不知道怎么回事很是影响自己对电脑的使用,其实遇到这样的问题一般是系统缺失了某些组件导致的,那该如何解决呢?下面本文就来 ...

  4. 黄聪:VS2010中如何让webbrowser不弹出JS异常错误窗口(c#.net)

    黄聪:VS2010中如何让webbrowser不弹出JS异常错误窗口(c#.net) 参考文章: (1)黄聪:VS2010中如何让webbrowser不弹出JS异常错误窗口(c#.net) (2)ht ...

  5. linux 程序占内存,linux概念之程序占用内存

    1.在linux下,查看一个运行中的程序,占用了多少内存,一般的命令有 (1). ps aux: 其中  VSZ(或VSS)列 表示,程序占用了多少虚拟内存. RSS列 表示, 程序占用了多少物理内存 ...

  6. linux下的程序开发实验,Linux程序实验.docx

    Linux程序实验 <Linux程序设计>教学大纲Linux Program Design课程类别:学科专业教育课程 课程名称:Linux程序设计开课单位:软件学院课程编号:总 学 时:3 ...

  7. linux命令启动程序,菜鸟学Linux命令:nohup命令启动程序

    在UNIX/LINUX中,普通进程用&符号放到后台运行,如果启动该程序的控制台logout,则该进程随即终止. 要实现守护进程,一种方法是按守护进程的规则去编程,比较麻烦: 另一种方法是仍然用 ...

  8. linux下java程序乱码,解决linux下java程序(例如applet)中文乱码问题

    解决linux下java程序(例如applet)中文乱码问题 平台:Mandriva 2006.0 将Windows下的字体文件simsun.ttc拷贝到/usr/share/fonts/zh_CN, ...

  9. win7 计算机里显示视频,usb视频设备-在win7中,USB视频设备怎么显示啊 – 手机爱问...

    2008-06-11 Windows无法识别USBWindo USB不被电脑识别,如果是系统或系统自带的驱动的原因,一般经过重启就可恢复或开机按F8进入安全模式在退出,在进入正常模式(修复受损的注册表 ...

最新文章

  1. python bisect_Python中bisect的用法
  2. 使用关指定中断解决资源冲突问题
  3. Angular2.x-主/细节组件
  4. install scrapy with pip and easy_install
  5. 用盛金公式求解一元三次方程
  6. 计算机模拟考总结,高职单考单招计算机模拟一技术总结.doc
  7. openfeign调用服务是否需要网关_阿里新一代微服务解决方案:Spring Cloud Alibaba
  8. 移动数据库 Realm 在 React-Native 的使用详解
  9. postgres常用命令
  10. oracle中游标详细用法
  11. c语言程序开发分为四个步骤,c语言程序开发的步骤
  12. [内附完整源码和文档] 基于Java的高校科研管理系统
  13. [毕业设计] 基于单片机的智能快递柜设计与实现 - stm32 物联网
  14. Java复习攻略02
  15. 「读书」人生十二法则
  16. SybilFuse:Combining Local Attributes with Global Structure to Perform Robust Sybil Detect(论文笔记)
  17. 3添加、修改、删除数据(oracle数据库)
  18. 结对编程项目-四则运算整体总结
  19. windows中无法删除文件,报无法删除****,找不到指定文件,请确定指定的路径及文件名是否正确的解决
  20. mysql删除大表更快的drop table办法(转老金)

热门文章

  1. Android启动白屏问题完美解决
  2. 华为内部几近满分的项目管理PPT,还不下载起来
  3. verilog仿真读取十进制数据的方法
  4. 住宅供水系统全面更新工程
  5. 谈谈android数据存储方式
  6. 【Linux基础】Windows10安装Ubuntu20.04双系统
  7. python 期货交易接口_量化交易 – 期货CTP接口与程序化(量化交易)的对接 1
  8. 1999-2020年广东省21地级市地区生产总值(亿元)
  9. SCI写作分析篇(一)
  10. 【迅为资料上新】iTOP-3568开发板指南手册