萝卜头IT论坛

搜索
查看: 94809|回复: 50
收起左侧

[教程] 禁用UASP 实现"拔出冻结"功能

  [复制链接]
发表于 2016-4-2 10:03:16 | 显示全部楼层 |阅读模式
普通帖子
帖子关键词: -
首先说为什么要禁用UASP,这来自于之前的研究:
拥有"保持插入USB驱动器"功能的必备条件
https://bbs.luobotou.org/forum.ph ... tid=12449&fromuid=1
要想实现 USB设备拔出冻结 的功能,UASP必须不能生效。

在支持UASP的环境下,我们可以通过修改注册表禁用它。


准备工作:
优盘内需要安装好WTG系统,并启动配置成功。
下面的操作需要回到本机系统进行。

1.使用ChipGenius看优盘信息,记住VID、PID、设备序列号。

CG.PNG

2.如果WTG系统使用VHD(X)模式安装,请先加载VHD(X)。
3.打开注册表编辑器
选择HKEY_LOCAL_MACHINE,打开文件菜单>加载配置单元(加载WTG的注册表)

浏览选择X:\WINDOWS\SYSTEM32\CONFIG\SYSTEM文件(X是优盘盘符或虚拟磁盘加载盘符)

system.PNG

随意设置一个加载项名称,比如wtgsys

4.定位到HKEY_LOCAL_MACHINE\wtgsys\ControlSet001\Enum\USB\VID_XXXX&PID_XXXX\MSFTXXXXXX
(VID和PID是刚才在ChipGenius里面看到的,下面的子项一般是与设备序列号有关)

5.右键点击MSFTXXXXXXX项,点击权限
rightclickpermission.PNG


点击高级按钮
permission.PNG

点击所有者后面的更改链接,输入本机用户名,确定

changeowner.PNG

修改后

changed.PNG

点确定关掉这个窗口
在刚才安全选项卡中的Everyone权限中 勾选 完全控制-允许 。

everyonepermission.PNG

6.
进行如下修改
Capabilities的值改为十六进制的94
DeviceDesc改为
  1. @usbstor.inf,%genericbulkonly.devicedesc%;USB Mass Storage Device
复制代码
Mfg的值改为
  1. @usbstor.inf,%generic.mfg%;Compatible USB storage device
复制代码
Service的值改为
  1. USBSTOR
复制代码
修改后的样子

xiugaihou.PNG


7.卸载配置单元,权限可以不改回

detach.PNG

8.完成
重新进入WTG系统,拔出冻结功能将生效。
拔出优盘时系统会冻结,重新插入后有“保持插入USB驱动器”的提示,系统不会蓝屏了。



回复

使用道具 举报

 楼主| 发表于 2016-4-2 10:08:58 | 显示全部楼层
禁用UASP会降低优盘性能,但是正常强度的使用WTG系统 感觉不到什么差异。
回复

使用道具 举报

发表于 2016-4-3 07:40:46 | 显示全部楼层
感谢分享,到时候试试
回复

使用道具 举报

发表于 2016-4-6 18:36:00 | 显示全部楼层
我的u盘是cz80,找的时候没发现有MSFTXXXXXXXX这个位置,已经确认VID和PID一致了。
还有在wtg下,HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control下的bootdriverflags值应该为多少?可以麻烦看一下吗
回复

使用道具 举报

 楼主| 发表于 2016-4-6 18:40:34 | 显示全部楼层
⑨Anti 发表于 2016-4-6 18:36
我的u盘是cz80,找的时候没发现有MSFTXXXXXXXX这个位置,已经确认VID和PID一致了。
还有在wtg下,HKEY_LOCA ...


cz80不支持uasp 不需要更改。
由于识别为可移动磁盘,因此没有拔出冻结功能,改了注册表也没有的
回复

使用道具 举报

发表于 2016-6-21 10:49:02 | 显示全部楼层
wtg安装工具能否把禁用uasp设置成一个可选项。
回复

使用道具 举报

 楼主| 发表于 2016-6-21 10:57:51 | 显示全部楼层
8680765 发表于 2016-6-21 10:49
wtg安装工具能否把禁用uasp设置成一个可选项。

这个需要在系统启动一次后更改注册表,不能在安装时更改。
目前没找到其他方法禁用。
回复

使用道具 举报

发表于 2016-7-2 20:39:12 | 显示全部楼层
nkc3g4 发表于 2016-6-21 10:57
这个需要在系统启动一次后更改注册表,不能在安装时更改。
目前没找到其他方法禁用。 ...

我觉得现在我们要做的就是把这个教程内的东西做到自动化,垂直整合到WTGA程序内,尝试写了个reg,如下,类似这样:
[HKEY_LOCAL_MACHINE\wtgsys\ControlSet001\Enum\USB\VID_XXXX&PID_XXXX\MSFTXXXXXX]
"Capabilities"="94"

[HKEY_LOCAL_MACHINE\wtgsys\ControlSet001\Enum\USB\VID_XXXX&PID_XXXX\MSFTXXXXXX]
"DeviceDesc"="@usbstor.inf,%genericbulkonly.devicedesc%;USB Mass Storage Device"

[HKEY_LOCAL_MACHINE\wtgsys\ControlSet001\Enum\USB\VID_XXXX&PID_XXXX\MSFTXXXXXX]
"Mfg"="@usbstor.inf,%generic.mfg%;Compatible USB storage device"

[HKEY_LOCAL_MACHINE\wtgsys\ControlSet001\Enum\USB\VID_XXXX&PID_XXXX\MSFTXXXXXX]
"Service"="USBSTOR"
但是有个问题就是VID、PID、设备序列号这三项不是统一的,VID和PID可以找ChipFancier那边统一了,开卡工具默认的VID和PID都是统一的,但是设备序列号要是都一样那老用户盘不大好办了,后期的盘可以统一指定一个序列号。然后还有一个方案,就是说WTGA可以检测VID、PID、设备序列号之后单独生成类似上面的那种注册表文件,WTGA程序要是不能检测那能不能集成芯片精灵去检测完了生成reg?
然后就是权限获取问题,这个有没有办法实现,我也不大懂编程这一块。
其次最麻烦的实际是“加载配置单元”这一步,WTG必须启动过一次才能进行修改,这就导致不能在制作WTG的时候直接对注册表进行操作,只能是生成一个reg之后等系统启动之后自动运行货是叫用户手动运行。
@viploser @nkc3g4 @这个显卡不太冷 @8680765

评分

1

查看全部评分

回复

使用道具 举报

联系我们(Contact)|手机版|萝卜头IT论坛 ( 苏ICP备15050961号-1 )

GMT+8, 2024-3-29 23:50 , Processed in 0.113660 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表