nkc3g4 发表于 2016-4-2 10:03:16

禁用UASP 实现"拔出冻结"功能

首先说为什么要禁用UASP,这来自于之前的研究:
拥有"保持插入USB驱动器"功能的必备条件
http://bbs.luobotou.org/forum.ph ... tid=12449&fromuid=1
要想实现 USB设备拔出冻结 的功能,UASP必须不能生效。

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


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

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



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

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



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

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

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



点击高级按钮


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



修改后



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



6.
进行如下修改
Capabilities的值改为十六进制的94
DeviceDesc改为
@usbstor.inf,%genericbulkonly.devicedesc%;USB Mass Storage DeviceMfg的值改为
@usbstor.inf,%generic.mfg%;Compatible USB storage deviceService的值改为
USBSTOR修改后的样子




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



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



nkc3g4 发表于 2016-4-2 10:08:58

禁用UASP会降低优盘性能,但是正常强度的使用WTG系统 感觉不到什么差异。

Frencis 发表于 2016-4-3 07:40:46

感谢分享,到时候试试

⑨Anti 发表于 2016-4-6 18:36:00

我的u盘是cz80,找的时候没发现有MSFTXXXXXXXX这个位置,已经确认VID和PID一致了。
还有在wtg下,HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control下的bootdriverflags值应该为多少?可以麻烦看一下吗

nkc3g4 发表于 2016-4-6 18:40:34

⑨Anti 发表于 2016-4-6 18:36 static/image/common/back.gif
我的u盘是cz80,找的时候没发现有MSFTXXXXXXXX这个位置,已经确认VID和PID一致了。
还有在wtg下,HKEY_LOCA ...

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

8680765 发表于 2016-6-21 10:49:02

wtg安装工具能否把禁用uasp设置成一个可选项。

nkc3g4 发表于 2016-6-21 10:57:51

8680765 发表于 2016-6-21 10:49
wtg安装工具能否把禁用uasp设置成一个可选项。

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

Hashimoto 发表于 2016-7-2 20:39:12

nkc3g4 发表于 2016-6-21 10:57
这个需要在系统启动一次后更改注册表,不能在安装时更改。
目前没找到其他方法禁用。 ...

我觉得现在我们要做的就是把这个教程内的东西做到自动化,垂直整合到WTGA程序内,尝试写了个reg,如下,类似这样:

"Capabilities"="94"


"DeviceDesc"="@usbstor.inf,%genericbulkonly.devicedesc%;USB Mass Storage Device"


"Mfg"="@usbstor.inf,%generic.mfg%;Compatible USB storage device"


"Service"="USBSTOR"

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