无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: slore

[原创] (2022-02-02 更新) Re:WIN10XPE - 从零开始构建的全功能PE

    [复制链接]
发表于 2019-2-2 21:26:00 | 显示全部楼层

我发的附件你试一下,是驱动拦截services注册表读取
回复

使用道具 举报

发表于 2019-2-2 21:27:16 | 显示全部楼层
hhh333 发表于 2019-2-2 20:48
10240版本似乎没有MTP限制

从1709开始

点评

是的。经测试ring0级驱动从根本上解决了问题,避免延时不准确的问题。测试成功。  详情 回复 发表于 2019-2-2 21:33
回复

使用道具 举报

发表于 2019-2-2 21:33:28 | 显示全部楼层
本帖最后由 hhh333 于 2019-2-2 21:36 编辑


是的。经测试ring0级驱动从根本上解决了问题,避免延时不准确的问题。测试成功。

这个驱动怎么也要依赖WUDFPlatform.dll?我以为不要依赖的。

点评

是services.exe依赖。  详情 回复 发表于 2019-2-2 21:40
回复

使用道具 举报

发表于 2019-2-2 21:40:26 | 显示全部楼层
hhh333 发表于 2019-2-2 21:33
是的。经测试ring0级驱动从根本上解决了问题,避免延时不准确的问题。测试成功。

这个驱动怎么也要 ...

是services.exe依赖。
回复

使用道具 举报

 楼主| 发表于 2019-2-2 22:41:02 | 显示全部楼层
yamingw 发表于 2019-2-2 20:08
新版mtp组件不拷贝System32\driverstore\FileRepository里的文件,log显示一切正常,为什么?
其实从XP的P ...

yamingw出手果然厉害。可否赏脸给我分享下ring0驱动的代码,想给noel分享下这个好消息。
MTP帖子里面也说了用驱动是正规方法,不过还没写过驱动,看到要什么签名认证啥的就放弃了。
我就这种延时只是曲线救国,我的环境运气比较好吧,100%成功。。。

自己编译的驱动能直接filter系统保护进程services.msc不用微软签名?

用驱动文件红毛说的 字体 问题估计也能解决掉了。



19H1:
笔记本转换管理员需要 batmeter.dll

这个文件包含在Shell中。
wimbuilder2-master\Projects\WIN10XPE\01-Components\00-Shell\main.bat

system32\Windows.UI.Xaml.Resources.19h1.dll


wimbuilder2-master\Projects\WIN10XPE\00-Configures\System\Admin\SwitchToAdmin.bat
中漏了定义。。。

  1. set VER_CNAME=.
  2. if %VER[3]% GTR 17000 set VER_CNAME=.rs4.
  3. if %VER[3]% GTR 17700 set VER_CNAME=.rs5.

  4. call AddFiles %0 :end_files
  5. goto :end_files

  6. ; 1709 uses Xaml.Resources.dll,1803 uses Xaml.Resources.rs4.dll and 1809 uses Xaml.Resources.rs5.dll, ...
  7. ; Keep both for compatibility with both versions
  8. ;Windows.UI.Xaml.Resources.dll,Windows.UI.Xaml.Resources.*.dll

  9. Windows.UI.Xaml.Resources%VER_CNAME%dll
复制代码


下次更新改成下面这样,没指定的版本全部复制,保证不漏。
set VER_CNAME=.*.
if %VER[3]% GTR 17000 set VER_CNAME=.rs4.
if %VER[3]% GTR 17700 set VER_CNAME=.rs5.
if %VER[3]% GTR 18300 set VER_CNAME=.19h1.

ie11需要syswow64\DXCore.dll


+ver > 18300
DXCore.dll
+ver*

纯64位不知道,是不是也是补这个文件。(过年回家,机子比较差,没法测试)

drvinst.exe 和 17763 patch的一样


wimbuilder2-master\Projects\WIN10XPE\Patch_drvinst\main.bat
:Drvinst_10.0.17763x64
:Drvinst_10.0.18323x64
call :PATCH 8BF0 85C0 7509 418B
goto :EOF

:Drvinst_10.0.17763x86
:Drvinst_10.0.18323x86
call :PATCH 8BD8 85DB 750A 8B4D
goto :EOF



有环境了测试下,春节前可以改善下19H1的支持。另外输入法缺什么知道么?
tools241反馈,19H1多了,SettingsHandlers*
其中有SettingsHandlers_IME.dll,不过我补充了也没成,就没再继续了。

点评

源码在193#,原来忘了打包项目文件了,已更新  详情 回复 发表于 2019-2-3 08:49
IE 正常了! 补了19h1.dll,切换管理员鼠标不闪烁了,但是还是无法切换。。。  发表于 2019-2-3 00:50
回复

使用道具 举报

发表于 2019-2-3 02:57:57 来自手机 | 显示全部楼层
yamingw 发表于 2019-2-2 19:40
笔记本转换管理员需要 batmeter.dll
19h1:18323
system32\Windows.UI.Xaml.Resources.19h1.dll

能不能做成这样?
读取一个配置文件,配置文件里可以指定某个进程不读取某个地方的注册表,多行对应的那种。
回复

使用道具 举报

发表于 2019-2-3 07:47:12 | 显示全部楼层
本帖最后由 yamingw 于 2019-2-3 08:46 编辑

源码上传,说明:
1、在网上搜Win64驱动编程,教程一大堆,我的也是粘贴过来的。
2、关键就一句:if (IsProcessName("services.exe", pep))
                {
                        RtlInitUnicodeString(&NamePEKey, L"\\REGISTRY\\MACHINE\\SYSTEM\\ControlSet001\\Control\\MiniNT");
                        if (RtlEqualUnicodeString((PCUNICODE_STRING)&NamePEKey, PreInfo->CompleteName, TRUE))
                        {
                                Status = STATUS_OBJECT_NAME_NOT_FOUND;
                        }
                        break;
                }
3、过期签名看雪上有。
4、微软以后又要在其他地方限制了

bi.7z

5.15 KB, 下载次数: 36, 下载积分: 无忧币 -2

点评

过期签名现在过不了uefi的安全启动,要开测试模式了。  详情 回复 发表于 2019-2-3 07:59
回复

使用道具 举报

发表于 2019-2-3 07:59:21 来自手机 | 显示全部楼层
yamingw 发表于 2019-2-3 07:47
源码上传,说明:
1、在网上搜Win64驱动编程,教程一大堆,我的也是粘贴过来的。
2、关键就一句:if (IsP ...

过期签名现在过不了uefi的安全启动,要开测试模式了。

点评

不想开测试模式就只能离线修改bootmgr、winload、ntoskrnl。当启动文件是wim格式时,bootmgr会检测winload完整性,vhd或物理分区则不会。可上github搜索upg工具。  详情 回复 发表于 2019-2-3 08:43
回复

使用道具 举报

发表于 2019-2-3 08:43:26 | 显示全部楼层
红毛樱木 发表于 2019-2-3 07:59
过期签名现在过不了uefi的安全启动,要开测试模式了。

不想开测试模式就只能离线修改bootmgr、winload、ntoskrnl。当启动文件是wim格式时,bootmgr会检测winload完整性,vhd或物理分区则不会。可上github搜索upg工具。
回复

使用道具 举报

发表于 2019-2-3 08:49:05 | 显示全部楼层
slore 发表于 2019-2-2 22:41
yamingw出手果然厉害。可否赏脸给我分享下ring0驱动的代码,想给noel分享下这个好消息。
MTP帖子里面也 ...

源码在193#,原来忘了打包项目文件了,已更新
回复

使用道具 举报

发表于 2019-2-3 17:15:25 | 显示全部楼层
slore 发表于 2019-2-2 16:10
写的很清楚,没有tsdiscon.exe,你在日志中搜索就知道了,改下索引,到专业版。

谢谢楼主的耐心解答,我以前用的是Windows1064位家庭版1809,这回我换成Windows1064位专业版1809制作PE,我今天从GitHub下载的制作工具,成功进入管理员和系统账户,就是进入桌面的速度慢。

点评

没有优化,我这边12秒左右还能接受。。。提前准备Admin的配置的话,估计可以加速吧  发表于 2019-2-3 17:20
回复

使用道具 举报

 楼主| 发表于 2019-2-5 03:16:49 | 显示全部楼层
本帖最后由 slore 于 2019-2-5 03:19 编辑
yamingw 发表于 2019-2-2 20:08
新版mtp组件不拷贝System32\driverstore\FileRepository里的文件,log显示一切正常,为什么?
其实从XP的P ...

新版mtp组件不拷贝System32\driverstore\FileRepository里的文件,log显示一切正常,为什么?


修改 AddFiles.vbs自动复制19H1的mun文件时,不小心清空了_AddFiles.txt导致,
AddFiles宏的Merge模式无法工作,所以mtp的驱动文件没有复制。

github上修改了,19h1上MTP驱动可以加载了,
笔记本管理员切换(补充电源图标),重构IME补丁,
MTP_Support补丁使用yamingw的mtpHelper.sys,使用JFX的DrvinstPatch.exe自动给全版本drvinst.exe打补丁
(DrvinstPath.exe p "%X_SYS%\dirinst.exe"),
同时修复了IE对19h1的支持,输入法指示器对19h1的支持(需要完整SOFTWARE,没定位必须注册表项, 内置中文输入法仍不可用)

目前19h1的话,就剩 输入法和切换管理员功能了。
好像补充了batmeter.dll,切换管理员有问题,鼠标一直闪烁。。。
没的话,只是一直黑屏。。。

回复

使用道具 举报

发表于 2019-2-5 10:13:51 | 显示全部楼层
多谢楼主,好好学习
回复

使用道具 举报

发表于 2019-2-6 23:02:03 | 显示全部楼层
本帖最后由 泰立信 于 2019-2-6 23:05 编辑

昨天的版本还是少了penetwork和chrome,需要自己添加
使用Administrator进入一直黑屏,但可见鼠标的光标闪动
说明一下,使用的版本是19H1

点评

看你之前回复图片查看器imagingdevices.exe运行时,缺少sti.dll的反馈,图片查看器功能是关联了图片文件到“预览”, 只是用到了PhotoViewer.dll,你找个图片打开看看。 imagingdevices.exe是扫描仪和相机功能,PE  详情 回复 发表于 2019-2-6 23:50
第三方工具是这样的,自己按需添加(内核基本不需要补充文件)。 控制体积不超过6MB,首页也标明了,只包含PECMD,StartIsBack,论坛附件上传有限制。 19H1暂时Admin账户和输入法功能不可用,也没人做,没法参考  详情 回复 发表于 2019-2-6 23:49
回复

使用道具 举报

 楼主| 发表于 2019-2-6 23:49:50 | 显示全部楼层
本帖最后由 slore 于 2019-2-6 23:56 编辑
泰立信 发表于 2019-2-6 23:02
昨天的版本还是少了penetwork和chrome,需要自己添加
使用Administrator进入一直黑屏,但可见鼠标的光标闪 ...


第三方工具是这样的,自己按需添加(内核基本不需要补充文件)。
论坛附件上传有限制,控制体积不超过6MB,首页也标明了,只包含PECMD,StartIsBack,
目前集中完善内核功能,软件库管理整合后会陆续完善实用工具。

19H1暂时Admin账户和输入法功能不可用,也没人做,没法参考,我只是根据反馈的信息顺便改进。


目前19H1支持狀況
[OK]Windows explorer外壳
[OK]MMC
[OK]DWM
[OK]搜索功能
[OK]WOW64支持
[OK]远程桌面(客户端)
[NG]资源管理器访问共享目录列表(\\192.168.56.1\)
[OK]net use \\192.168.56.1 /user:xxx password
[OK]资源管理器访问\\192.168.56.1\C$
[OK]输入法指示器(需要选使用完整SOFTWARE, 目前未定位最小注册表项)  [2019-02-05版]
[NG]内置中文输入法
[NG]Admin帐户
[OK]IE [2019-02-05版]
[OK]MTP支持 [2019-02-05版]
[OK]图片查看器
回复

使用道具 举报

 楼主| 发表于 2019-2-6 23:50:50 | 显示全部楼层
泰立信 发表于 2019-2-6 23:02
昨天的版本还是少了penetwork和chrome,需要自己添加
使用Administrator进入一直黑屏,但可见鼠标的光标闪 ...

看你之前回复图片查看器imagingdevices.exe运行时,缺少sti.dll的反馈,图片查看器功能是关联了图片文件到“预览”,
只是用到了PhotoViewer.dll,你找个图片打开看看。
imagingdevices.exe是扫描仪和相机功能,PE下目前用处不大吧,不用的话这个exe可以删除了。
回复

使用道具 举报

发表于 2019-2-7 10:09:23 来自手机 | 显示全部楼层
19h1输入法,windows.ui.core.txtinput.dll,只可输入第一个候选字,因为没有选字界面。

点评

谢谢指点,确实添加了这个文件就可以输入中文了。 我尝试补充所有IME的文件和TextInput,结果仍没有改变,没有候选字。。。 甚至把System32的*.dll也添加了。。。结果一样。。。 内置输入法文件快100  详情 回复 发表于 2019-2-7 16:01
微软 "内建五笔拚音" 在10PE 18317版之前正常, 在10PE18323,10PE18329版似乎 \Windows\System32\InputMethod\CHS\ChsIME.exe 未能成功常驻? 自18323版起多了 SettingsHandlers_IME.dll 测试: 1.自同版正常系统  详情 回复 发表于 2019-2-7 10:58
回复

使用道具 举报

发表于 2019-2-7 10:58:43 | 显示全部楼层
本帖最后由 tools241 于 2019-2-9 14:37 编辑
yamingw 发表于 2019-2-7 10:09
19h1输入法,windows.ui.core.txtinput.dll,只可输入第一个候选字,因为没有选字界面。

微软 "内建五笔拚音" 在10PE 18317版之前正常, 在10PE18323,10PE18329,10PE18334版似乎
\Windows\System32\InputMethod\CHS\ChsIME.exe 未能成功常驻?
18323版多了 \Windows\System32\SettingsHandlers_IME.dll 及
\Windows\WinSxS\amd64_microsoft-windows-s..ettingshandlers-ime_31bf3856ad364e35_10.0.18323.1000_none_2c736b731fddbb4c\SettingsHandlers_IME.dll

取自正常安装的系统:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\CTF\TIP\{6a498709-e00b-4c45-a018-8f9e4081ae40}]
...

______________________

测试:
1.自同版正常系统提取注册表无效? 可能须再补什么档案或注册表.
2.自早期版本提取注册表及相关用档取代无效( ChsIME.exe 未能成功常驻 ).
3.将18323版正常系统的 \Windows\System32\ctfmon.exe 及 \Windows\System32\InputMethod\CHS 换成 18317版的档案,
   结果并不影响18323版正常系统的微软 "内建五笔拚音" 输入法.


点评

用新版WIN10XPE自己做一个试试  详情 回复 发表于 2019-2-7 17:03
回复

使用道具 举报

 楼主| 发表于 2019-2-7 16:01:21 | 显示全部楼层
yamingw 发表于 2019-2-7 10:09
19h1输入法,windows.ui.core.txtinput.dll,只可输入第一个候选字,因为没有选字界面。


谢谢指点,确实添加了这个文件就可以输入中文了。


  1. +ver > 18300
  2. umpdc.dll
  3. clbcatq.dll,dusmapi.dll
  4. netprofm.dll,npmproxy.dll
  5. TextInputMethodFormatter.dll,WordBreakers.dll
  6. Windows.Networking.HostName.dll

  7. Windows.UI.Core.TextInput.dll

  8. ;test
  9. \Windows\TextInput\
  10. \Windows\IME\IMETC\
  11. \Windows\InputMethod\CHS\
  12. @\Windows\System32
  13. IME\IMETC\
  14. InputMethod\CHS\
  15. setting*
  16. \Windows\WinSxS\amd64_microsoft-windows-s..ettingshandlers-ime_*\*.*
  17. \Windows\WinSxS\Manifests\amd64_microsoft-windows-s..ettingshandlers-ime_*.manifest
  18. +ver*

  19. ;\Windows\SystemResources\
  20. ;*.dll
复制代码


我尝试补充所有IME的文件和TextInput,结果仍没有改变,没有候选字。。。
甚至把System32的*.dll也添加了。。。结果一样。。。


内置输入法文件快100MB了,依赖多文件还大,有点坑,我添加个极点五笔输入法看看吧。

点评

安装搜狗输入法可正常使用。 19h1还不成熟,不必勉强。 win10每个版本都有变动,19h1新建菜单不再依赖StateRepository,但输入法和新界面又结合太紧密。  详情 回复 发表于 2019-2-7 17:02
回复

使用道具 举报

发表于 2019-2-7 17:02:00 | 显示全部楼层
slore 发表于 2019-2-7 16:01
谢谢指点,确实添加了这个文件就可以输入中文了。

安装搜狗输入法可正常使用。
19h1还不成熟,不必勉强。
win10每个版本都有变动,19h1新建菜单不再依赖StateRepository,但输入法和新界面又结合太紧密。
回复

使用道具 举报

发表于 2019-2-7 17:03:20 | 显示全部楼层
tools241 发表于 2019-2-7 10:58
微软 "内建五笔拚音" 在10PE 18317版之前正常, 在10PE18323,10PE18329版似乎
\Windows\System32\InputMe ...

用新版WIN10XPE自己做一个试试
回复

使用道具 举报

发表于 2019-2-7 22:39:11 | 显示全部楼层
输入法还是用搜狗输入法解决,不用原版的输入法
回复

使用道具 举报

 楼主| 发表于 2019-2-9 17:52:15 | 显示全部楼层

如果和开始菜单一样的话,看来不是单纯补文件和注册表可以解决的。其他输入法可以用,我也不折腾了,等谁做好了19H1有功能了我抄过来就是了。节后其他没转换过来的声音驱动,MSI支持等补齐,然后就整合3方应用程序自动下载官方最新版软件管理部分。
回复

使用道具 举报

 楼主| 发表于 2019-2-9 20:10:47 | 显示全部楼层
本帖最后由 slore 于 2019-2-9 23:15 编辑
某些人 发表于 2019-1-31 10:31
1:任务栏选总的是合并,而pe测试确是从不合并
2:没有勾选讲述人等附件,可开始菜单却出现了快捷方式
3:启动桌面后,桌面会显示隐藏文件


1.任务栏合并选项无效
可能是补丁结构调整,导致这个任务栏合并设定没有批处理处理。

wimbuilder2的任意last.bat中添加下注册表处理就好了,不过这个参数是Shell的设定,建议:
添加到: wimbuilder2\Projects\WIN10XPE\01-Components\00-Shell\last.bat


  1. rem // 0=Always combine, hide labels, 1=Combine when taskbar is full,2=Never combine
  2. set TaskbarCombineValue=2
  3. if "x%opt[shell.taskbar.combine]%"=="xalways" (
  4.     set TaskbarCombineValue=0
  5. ) else if "x%opt[shell.taskbar.combine]%"=="xauto" (
  6.     set TaskbarCombineValue=1
  7. )
  8. reg add HKLM\Tmp_Default\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced /v TaskbarGlomLevel /t REG_DWORD /d %TaskbarCombineValue% /f
  9. set TaskbarCombineValue=
复制代码


2:没有勾选讲述人等附件,可开始菜单却出现了快捷方式
winre.wim自带讲述人,记事本,命令提示符组件,且有这3个快捷方式。

F:\sources\install.wim\Windows\System32\Recovery\winre.wim\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\

  • \Accessories\Notepad.lnk
  • \System Tools\Command Prompt.lnk
  • \Accessibility\Narrator.lnk


在Projects\WIN10XPE\last.bat添加删除文件命令即可。

del /q "X:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\Notepad.lnk"
del /q "X:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Tools\Command Prompt.lnk"
del /q "X:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\AAccessibility\Narrator.lnk"

X:\ 建议使用 %X%\

3:启动桌面后,桌面会显示隐藏文件
PE作为维护,默认设定是看到所有隐藏文件。
这种和快捷方式箭头一样,因人而异,自己可以添加注册表修改内容到last.bat中,
不过避免和我更新的最新版last.bat冲突,建议自己做个专属设定补丁。

  • Projects\WIN10XPE\下添加一个文件夹“z0-我的设定”
  • 创建一个main.html文件,空的就可以
  • 创建一个last.bat批处理文件
  • 添加注册表修改,或者文件复制,删除批处理代码。

PE的wim挂载镜像默认映射到X:盘,如果PE下使用wimbuilder2,可能变成A:盘,所以
文件操作建议使用%X%\变量。

注册表修改时,注意PE的注册表文件被挂载在HKLM\tmp_xxxx下面。

不显示隐藏文件,和系统文件的注册表设置方法,网上搜索下即可,把注册表位置替换成tmp_Default下就行了。

自己备份好“z0-我的设定”文件夹,最新版有更新了,复制进去就行了。


1.我提交到github了,小更新我就不更新首页了。
2.,3.是个人自定义设定,我这里说明方法,自己根据需要处理。
(del快捷方式的命令,也可以写到“z0-我的设定\last.bat”)
回复

使用道具 举报

 楼主| 发表于 2019-2-9 23:14:36 | 显示全部楼层

PE设置一直用不了,WIFI的话,

WinXShell,
WiFi.png

或者
PENetwork都能代替。

PENW_WIF.PNG

任务栏设置界面,WinXShell也可以做个系统一样的,不过不清楚具体设置经常用?

回复

使用道具 举报

发表于 2019-2-10 00:12:26 来自手机 | 显示全部楼层
2012qnmd 发表于 2019-1-7 07:50
目前,打印机支持的PE,只有10240,以后版本的没看见.所以,没有必要强求

这几个功能保留一下吧

我的1809支持打印啊
回复

使用道具 举报

发表于 2019-2-10 00:20:34 来自手机 | 显示全部楼层
大神,用了你那个生成的pe声音不能启动,我看你pecmd里有加载声音的命令

点评

声音支持补丁没加。主要是驱动和几个服务,放假没动。节后把声音和网卡驱动补齐。  发表于 2019-2-10 00:22
回复

使用道具 举报

发表于 2019-2-11 16:27:24 | 显示全部楼层
slore 发表于 2019-1-3 01:06
推荐放置于:WimBuilder2\Projects\WIN10XPE\02-Apps\PENetwork

这个东西放到PE里去后无线网络那一栏显示没有安装,点启动没反应

点评

无线网卡要驱动  发表于 2019-2-11 22:13
回复

使用道具 举报

发表于 2019-2-11 16:29:25 | 显示全部楼层
slore 发表于 2019-1-3 01:06
推荐放置于:WimBuilder2\Projects\WIN10XPE\02-Apps\PENetwork

需要运行Startnet.cmd么

点评

有PECMD的话,不用startnet.cmd,没有的话,要在startnet.cmd添加命令,目前是在工程的last.bat里面写入startnet.cmd命令,你自己可以copy /y mystartnet.cmd "%X_SYS%\startnet.cmd"  发表于 2019-2-11 22:15
回复

使用道具 举报

发表于 2019-2-11 16:30:09 | 显示全部楼层
驱动要不要装,还有,麻烦提供一下bat的说明

点评

看你干嘛了,驱动对应的是要的。bat就是批处理,主要AddFiles命令添加install.wim的文件列表, 工程里面的,main.bat你看看就明白了,比如: D:\Dev\WimBuilder2\Projects\WIN10XPE\01-Components\MMC\DiskMgr.ba  详情 回复 发表于 2019-2-11 22:22
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-3-28 20:52

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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