无忧启动论坛

标题: khauyeung,关于 7peldr。 [打印本页]

作者: lxl1638    时间: 2009-8-1 11:56
标题: khauyeung,关于 7peldr。
7peldr.exe 没有什么特别,插件中(你的PE里),7peldr.exe 是 UPX 压缩的,解压后用 PE 资源工具一目了然。
win7peldr和7peldr类似SB,它内钳的批处理安装200多个inf。

1、在 RC_DATA\B 中放置了一个 CMD 批处理,其中有两处执行的功能与 PECMD 重复了,内容如下:
hidcon.exe regedit /s x:\windows\system32\clid.reg
hidcon.exe drvload.exe x:\windows\inf\acpi.inf
hidcon.exe drvload.exe x:\windows\inf\cpu.inf
hidcon.exe drvload.exe x:\windows\inf\dc21x4vm.inf
hidcon.exe drvload.exe x:\windows\inf\hdaudbus.inf
hidcon.exe drvload.exe x:\windows\inf\iscsi.inf
hidcon.exe drvload.exe x:\windows\inf\net1k32.inf
hidcon.exe drvload.exe x:\windows\inf\net1q32.inf
hidcon.exe drvload.exe x:\windows\inf\net1y32.inf
hidcon.exe drvload.exe x:\windows\inf\net44x32.inf
hidcon.exe drvload.exe x:\windows\inf\netavpna.inf
hidcon.exe drvload.exe x:\windows\inf\netavpnt.inf
hidcon.exe drvload.exe x:\windows\inf\netb57vx.inf
hidcon.exe drvload.exe x:\windows\inf\netbvbdx.inf
hidcon.exe drvload.exe x:\windows\inf\netbxndx.inf
hidcon.exe drvload.exe x:\windows\inf\nete1e32.inf
hidcon.exe drvload.exe x:\windows\inf\nete1g32.inf
hidcon.exe drvload.exe x:\windows\inf\netefe32.inf
hidcon.exe drvload.exe x:\windows\inf\netevbdx.inf
hidcon.exe drvload.exe x:\windows\inf\netgb6.inf
hidcon.exe drvload.exe x:\windows\inf\netimm.inf
hidcon.exe drvload.exe x:\windows\inf\netip6.inf
hidcon.exe drvload.exe x:\windows\inf\netk57x.inf
hidcon.exe drvload.exe x:\windows\inf\netl1c86.inf
hidcon.exe drvload.exe x:\windows\inf\netl1e86.inf
hidcon.exe drvload.exe x:\windows\inf\netl160x.inf
hidcon.exe drvload.exe x:\windows\inf\netl260x.inf
hidcon.exe drvload.exe x:\windows\inf\netloop.inf
hidcon.exe drvload.exe x:\windows\inf\netmscli.inf
hidcon.exe drvload.exe x:\windows\inf\netmyk01.inf
hidcon.exe drvload.exe x:\windows\inf\netnb.inf
hidcon.exe drvload.exe x:\windows\inf\netnvm32.inf
hidcon.exe drvload.exe x:\windows\inf\netnvmx.inf
hidcon.exe drvload.exe x:\windows\inf\netrasa.inf
hidcon.exe drvload.exe x:\windows\inf\netrass.inf
hidcon.exe drvload.exe x:\windows\inf\netrast.inf
hidcon.exe drvload.exe x:\windows\inf\netrtl32.inf
hidcon.exe drvload.exe x:\windows\inf\netrtx32.inf
hidcon.exe drvload.exe x:\windows\inf\netsstpa.inf
hidcon.exe drvload.exe x:\windows\inf\netsstpt.inf
hidcon.exe drvload.exe x:\windows\inf\nettcpip.inf
hidcon.exe drvload.exe x:\windows\inf\nettun.inf
hidcon.exe drvload.exe x:\windows\inf\netvfx86.inf
hidcon.exe drvload.exe x:\windows\inf\netvg62.inf
hidcon.exe drvload.exe x:\windows\inf\netxe32.inf
hidcon.exe drvload.exe x:\windows\inf\usb.inf
hidcon.exe drvload.exe x:\windows\inf\usbport.inf
hidcon.exe drvload.exe x:\windows\inf\usbstor.inf
hidcon.exe wpeinit.exe wpeinit.txt


这里有近50个inf文件,是Win7PE的基本驱动,Win7PEldr.exe会安装200多个inf文件,所以7peldr比win7peldr快很多。
但从中可以看到,7peldr并不高明,执行效率肯定很差。原因是每一个inf文件都要启动一次hidcon.exe,通过hidcon.exe再启动一次drvload.exe。这个批处理中也加载clid.reg和wpeinit.exe。实际上这个批处理的功能完全可以用目前的PECMD取代:
在 PECMD.INI 中用一连惯的 EXEC drvload.exe xxxxxxxx.inf 执行,效率肯定会提高。下版 PECMD.EXE 打算在 Devi 命令中直接加入
DEVI xxxxxxxxxxxx.INF 的功能。

2、RC_DATA\F 中,内钳了一个 2K 的 Exe 文件,这个文件就是 hidcon.exe,它的作用是隐藏执行控制台命令界面;

3、RC_DATA\I 中,应该是这两个文件(hidcon.exe和wpeinit.txt)的长度,用于释放出来后对之校验;

4、RC_DATA\N 中,定义了一个名为 7peldr.bat 的批处理名称的字符串,RC_DATA\B 释放出来的文件以它命名;

5、RC_DATA\O 中,放置了一堆长度为 77 的数据,似乎是某些校验码?

只要弄清最后的第5点,完全可以用 PECMD 取代 7peldr。以提高效率。

[ 本帖最后由 lxl1638 于 2009-8-1 12:55 编辑 ]

未命名.PNG (23.73 KB, 下载次数: 52)

未命名.PNG

未命名2.PNG (30.29 KB, 下载次数: 50)

未命名2.PNG

作者: yichya    时间: 2009-8-1 11:59
网络要这么些东西?比PE1.X多太多了。

还不如外置,然后从pecmd里抄袭点隐藏窗口的代码。
作者: lxl1638    时间: 2009-8-1 12:19
原帖由 yichya 于 2009-8-1 11:59 发表
网络要这么些东西?比PE1.X多太多了。

还不如外置,然后从pecmd里抄袭点隐藏窗口的代码。


前面几个和后面几个不是以 "net...." 开头的应该不是网络驱动:

x:\windows\inf\acpi.inf
x:\windows\inf\cpu.inf
x:\windows\inf\dc21x4vm.inf
x:\windows\inf\hdaudbus.inf
x:\windows\inf\iscsi.inf
x:\windows\inf\usb.inf
x:\windows\inf\usbport.inf
x:\windows\inf\usbstor.inf

如其中的 iscsi.inf 驱动,不知能否移植到 NT5.x 的 WinPE 中?
作者: yichya    时间: 2009-8-1 12:22
估计只要些许修改,就是DLL没地方找,NT6.X的DLL EXE都不被NT5.X支持。
作者: yichya    时间: 2009-8-1 12:24
用什么东西把DRVLOAD反了,看调了些什么函数,再MSDN查查原形,直接填进PECMD。
作者: lxl1638    时间: 2009-8-1 12:29
原帖由 yichya 于 2009-8-1 12:24 发表
用什么东西把DRVLOAD反了,看调了些什么函数,再MSDN查查原形,直接填进PECMD。


nt6.xt系列的PE中都有几个 LOAD inf 的工具,其中有个更 SB ,支持通配符,如 x:\windows\inf\*.inf。
nt6.x的DLL是提供了一个直接安装inf的API。
作者: yichya    时间: 2009-8-1 12:36
不是那个installhinfsectionw吧,还是些别的?
作者: lxl1638    时间: 2009-8-1 12:47
原帖由 yichya 于 2009-8-1 12:36 发表
不是那个installhinfsectionw吧,还是些别的?


是 DiInstallDriver,微软的资料,明确说明是 Vista 及其以后的系统提供的 API :

Versions: The DiInstallDriver function is available in Windows Vista and later versions of Windows.
Headers: Declared in Newdev.h. Include Newdev.h.
Library: Contained in Newdev.lib. Link to Newdev.lib.



Windows Driver Kit: Device Installation
DiInstallDriver

The DiInstallDriver function preinstalls a driver in the driver store and then installs the driver on devices present in the system that the driver supports.
BOOL WINAPI
  DiInstallDriver(
    IN HWND  hwndParent  OPTIONAL,
    IN LPCTSTR  FullInfPath,
    IN DWORD  Flags,
    OUT PBOOL  NeedReboot  OPTIONAL
    );
ParametershwndParent A handle to the top-level window that DiInstallDriver uses to display any user interface component that is associated with installing the device. This parameter is optional and can be set to NULL. FullInfPath A pointer to a NULL-terminated string that supplies the fully-qualified path to the INF file for the driver package. Flags A value of type DWORD that specifies zero or DIIRFLAG_FORCE_INF. Normally this flag should be set to zero. If this flag is zero, DiInstallDriver only installs the specified driver on a device if the driver is a better match for a device than the driver that is currently installed on a device. However, if this flag is set to DIIRFLAG_FORCE_INF, DiInstallDriver installs the specified driver on a matching device whether or not the driver is a better match for the device than the driver that is currently installed on the device. Caution
Forcing the installation of the driver can result in replacing a more compatible or newer driver with a less compatible or older driver.

For information about how Setup selects a driver for a device, see How Setup Selects Drivers.
NeedReboot A pointer to a value of type BOOL that DiInstallDriver sets to indicate whether a system is restart is required to complete the installation. This parameter is optional and can be NULL. If the parameter is supplied and a system restart is required to complete the installation, DiInstallDriver sets the value to TRUE. In this case, the caller must prompt the user to restart the system. If this parameter is supplied and a system restart is not required to complete the installation, DiInstallDriver sets the value to FALSE. If the parameter is NULL and a system restart is required to complete the installation, DiInstallDriver displays a system restart dialog box. For more information about this parameter, see the following Comments section.
Return ValueDiInstallDriver returns TRUE if the function successfully preinstalled the specified driver package in the driver store. DiInstallDriver also returns TRUE if the function successfully installed the driver on one or more devices in the system. If the driver package is not successfully installed in the driver store, DiInstallDriver returns FALSE and the logged error can be retrieved with a call to GetLastError. Some of the more common error values that GetLastError might return are:
ERROR_ACCESS_DENIED The caller does not have Administrator privileges. By default, Windows requires that the caller have Administrator privileges to preinstall a driver package in the driver store.
ERROR_FILE_NOT_FOUND The path to the specified INF file does not exist. ERROR_INVALID_FLAGS The value specified for Flags is not equal to zero or DIIRFLAG_FORCE_INF. ERROR_IN_WOW64 The calling application is a 32-bit application that is attempting to execute in a 64-bit environment, which is not allowed. For more information, see Installing Devices on 64-Bit Systems.
CommentsDiInstallDriver performs the following operations:
In general, an installation application should set NeedReboot to NULL to direct DiInstallDriver to prompt the user to restart the system if a restart is required to complete the installation. An application should supply a NeedReboot pointer only in the following cases:
To install a selected driver on a selected device, call DiInstallDevice or InstallSelectedDriver. For more information about which of these functions to call to install a selected driver on a selected device, see SetupAPI Functions that Simplify Driver Installation.
RequirementsVersions: The DiInstallDriver function is available in Windows Vista and later versions of Windows.
Headers: Declared in Newdev.h. Include Newdev.h.
Library: Contained in Newdev.lib. Link to Newdev.lib.

See AlsoDiInstallDevice, InstallSelectedDriver


[email=wsddocfb@microsoft.com?subject=Documentation feedback [DevInst_r]: DiInstallDriver RELEASE: (July 08, 2009)&body=%0A%0A[Source: MSDN]%0A%0APRIVACY STATEMENT%0A%0AThe WDK team uses the feedback submitted to improve the WDK documentation. We do not use your e-mail address for any other purpose. We will remove your e-mail address from our system after the issue you are reporting has been resolved. While we are working to resolve this issue, we may send you an e-mail message to request more information about your feedback. After the issues have been addressed, we may send you an e-mail message to let you know that your feedback has been addressed.%0A%0AFor more information about Microsoft]Send feedback on this topic[/email]
Built on July 08, 2009




http://msdn.microsoft.com/en-us/library/aa906312.aspx
作者: 小咕咚    时间: 2009-8-1 12:59
在PE3中处理掉clid.reg,winpeshl.ini只用下列一行:
[LaunchApps]
explorer.exe

启动也用快,当然没有加载网络驱动,从理论上讲应该是Explorer启动最快吧?驱动应该也是Explorer自动处理的?

[ 本帖最后由 小咕咚 于 2009-8-1 13:13 编辑 ]
作者: khauyeung    时间: 2009-8-1 20:06
原帖由 lxl1638 于 2009-7-31 22:56 发表
7peldr.exe 没有什么特别,插件中(你的PE里),7peldr.exe 是 UPX 压缩的,解压后用 PE 资源工具一目了然。
win7peldr和7peldr类似SB,它内钳的批处理安装200多个inf。

1、在 RC_DATA\B 中放置了一个 CMD 批 ...

无独有偶,我昨天也用UPX -d解开了yahoouk的7peldr.exe,penet.exe,urgent.exe和full.exe进行研究,发了相同的东西。7peldr所做的都可以用PECMD代替,时间大概快10秒左右,由80减少至70秒。下面是我用PECMD.INI所做的的最新版本:
  1. DISP W1024 H768 B32
  2. EXEC =!x:\windows\regedit.exe /s x:\windows\system32\clid.reg
  3. FILE x:\windows\system32\clid.reg
  4. LINK X:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\附件\图片观赏器 I_VIEW32,x:\Program Files\Windows Photo Viewer\i_view32.exe
  5. LINK X:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\附件\资源管理器 EXPLORER,x:\windows\explorer.exe /n /e,x:\
  6. LINK X:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\附件\计算器 CALCULATOR,x:\windows\system32\calc.exe
  7. LINK X:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\附件\命令提示符 CMD,x:\windows\system32\cmd.exe
  8. LINK X:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\附件\记事本 NOTEPAD,x:\windows\system32\notepad.exe
  9. LINK X:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Administrative Tools\注册表编辑 REGEDIT,x:\windows\regedit.exe
  10. LINK X:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Administrative Tools\任务管理器 TASKMGR,x:\windows\system32\taskmgr.exe
  11. LINK X:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Administrative Tools\WIN7载入器 WIN7PELDR,x:\windows\system32\win7peldr.exe
  12. LINK X:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Administrative Tools\计算机管理 COMPMGMT,x:\windows\system32\mmc.exe /b %SystemRoot%/system32/compmgmt.msc
  13. LINK X:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\文件工具\7z文件管理 7zFM,x:\Program Files\7-zip\7zfm.exe
  14. LINK X:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\文件工具\文件搜索器 FILESEARCH,x:\windows\system32\filesearch.exe
  15. LINK X:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\文件工具\图片观赏器 I_VIEW32,x:\Program Files\Windows Photo Viewer\i_view32.exe
  16. LINK X:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\网络工具\TCPIP配置 TCPCFG,x:\windows\system32\tcpcfg.exe,,x:\windows\system32\tcpcfg.exe
  17. LINK X:\Users\Default\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\网络工具\初始化网络 WPEUTIL,x:\windows\system32\wpeutil.exe,InitializeNetwork,x:\windows\icons\network.ico
  18. LINK X:\Windows\system32\config\systemprofile\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\命令提示符 CMD,x:\windows\system32\cmd.exe
  19. LINK X:\Windows\system32\config\systemprofile\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\任务管理器 TASKMGR,x:\windows\system32\taskmgr.exe
  20. LINK X:\Windows\system32\config\systemprofile\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\记事本 NOTEPAD,x:\windows\system32\notepad.exe
  21. LINK X:\Windows\system32\config\systemprofile\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\资源管理器 EXPLORER,x:\windows\explorer.exe,/n,x:\windows\icons\explorer.ico
  22. EXEC !cmd.exe /c "x:\windows\system32\PinItem.cmd"
  23. SHEL x:\windows\Explorer.exe
  24. CALL $setupapi.dll,InstallHinfSection DefaultInstall 132 x:\windows\inf\acpi.inf
  25. CALL $setupapi.dll,InstallHinfSection DefaultInstall 132 x:\windows\inf\cpu.inf
  26. CALL $setupapi.dll,InstallHinfSection DefaultInstall 132 x:\windows\inf\dc21x4vm.inf
  27. CALL $setupapi.dll,InstallHinfSection DefaultInstall 132 x:\windows\inf\disk.inf
  28. CALL $setupapi.dll,InstallHinfSection DefaultInstall 132 x:\windows\inf\hal.inf
  29. CALL $setupapi.dll,InstallHinfSection DefaultInstall 132 x:\windows\inf\hdaudbus.inf
  30. CALL $setupapi.dll,InstallHinfSection DefaultInstall 132 x:\windows\inf\iscsi.inf
  31. CALL $setupapi.dll,InstallHinfSection DefaultInstall 132 x:\windows\inf\keyboard.inf
  32. CALL $setupapi.dll,InstallHinfSection DefaultInstall 132 x:\windows\inf\msmouse.inf
  33. CALL $setupapi.dll,InstallHinfSection DefaultInstall 132 x:\windows\inf\msports.inf
  34. CALL $setupapi.dll,InstallHinfSection DefaultInstall 132 x:\windows\inf\usb.inf
  35. CALL $setupapi.dll,InstallHinfSection DefaultInstall 132 x:\windows\inf\usbport.inf
  36. CALL $setupapi.dll,InstallHinfSection DefaultInstall 132 x:\windows\inf\usbstor.inf
  37. CALL $setupapi.dll,InstallHinfSection DefaultInstall 132 x:\windows\inf\volume.inf
  38. EXEC =!drvload.exe x:\windows\inf\net1k32.inf
  39. EXEC =!drvload.exe x:\windows\inf\net1q32.inf
  40. EXEC =!drvload.exe x:\windows\inf\net1y32.inf
  41. EXEC =!drvload.exe x:\windows\inf\net44x32.inf
  42. EXEC =!drvload.exe x:\windows\inf\netavpna.inf
  43. EXEC =!drvload.exe x:\windows\inf\netavpnt.inf
  44. EXEC =!drvload.exe x:\windows\inf\netb57vx.inf
  45. EXEC =!drvload.exe x:\windows\inf\netbvbdx.inf
  46. EXEC =!drvload.exe x:\windows\inf\netbxndx.inf
  47. EXEC =!drvload.exe x:\windows\inf\nete1e32.inf
  48. EXEC =!drvload.exe x:\windows\inf\nete1g32.inf
  49. EXEC =!drvload.exe x:\windows\inf\netefe32.inf
  50. EXEC =!drvload.exe x:\windows\inf\netevbdx.inf
  51. EXEC =!drvload.exe x:\windows\inf\netgb6.inf
  52. EXEC =!drvload.exe x:\windows\inf\netimm.inf
  53. EXEC =!drvload.exe x:\windows\inf\netip6.inf
  54. EXEC =!drvload.exe x:\windows\inf\netk57x.inf
  55. EXEC =!drvload.exe x:\windows\inf\netl1c86.inf
  56. EXEC =!drvload.exe x:\windows\inf\netl1e86.inf
  57. EXEC =!drvload.exe x:\windows\inf\netl160x.inf
  58. EXEC =!drvload.exe x:\windows\inf\netl260x.inf
  59. EXEC =!drvload.exe x:\windows\inf\netloop.inf
  60. EXEC =!drvload.exe x:\windows\inf\netmscli.inf
  61. EXEC =!drvload.exe x:\windows\inf\netmyk01.inf
  62. EXEC =!drvload.exe x:\windows\inf\netnb.inf
  63. EXEC =!drvload.exe x:\windows\inf\netnvm32.inf
  64. EXEC =!drvload.exe x:\windows\inf\netnvmx.inf
  65. EXEC =!drvload.exe x:\windows\inf\netrasa.inf
  66. EXEC =!drvload.exe x:\windows\inf\netrass.inf
  67. EXEC =!drvload.exe x:\windows\inf\netrast.inf
  68. EXEC =!drvload.exe x:\windows\inf\netrtl32.inf
  69. EXEC =!drvload.exe x:\windows\inf\netrtx32.inf
  70. EXEC =!drvload.exe x:\windows\inf\netsstpa.inf
  71. EXEC =!drvload.exe x:\windows\inf\netsstpt.inf
  72. EXEC =!drvload.exe x:\windows\inf\nettcpip.inf
  73. EXEC =!drvload.exe x:\windows\inf\nettun.inf
  74. EXEC =!drvload.exe x:\windows\inf\netvfx86.inf
  75. EXEC =!drvload.exe x:\windows\inf\netvg62.inf
  76. EXEC =!drvload.exe x:\windows\inf\netxe32.inf
  77. RAMD ImDisk,P10,NTFS,B:
  78. EXEC =!x:\windows\system32\autorun.cmd
  79. LINK X:\Windows\system32\config\systemprofile\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\Opera  网页浏览器,b:\opera\opera.cmd,,x:\windows\icons\opera.ico
  80. LINK %Quicklaunch%\网页浏览器 OPERA,b:\opera\opera.cmd,,x:\windows\icons\opera.ico
  81. LINK %Desktop%\网络设置器,x:\Program Files\penetcfg\PENetCfg.exe,,x:\windows\system32\networkexplorer.dll#0
  82. LINK %Desktop%\网页浏览器,b:\opera\opera.cmd,,x:\windows\icons\opera.ico
  83. LINK %Desktop%\磁盘分区经理,b:\pm85\program\launcher.exe,,x:\windows\icons\pm.ico
  84. LINK %Desktop%\TCPIP配置,x:\windows\system32\tcpcfg.exe
  85. EXEC !x:\windows\system32\winpeshl.exe
  86. TIPS 网络初始化正在进行中,如有需要,请于初始化完成后点击桌面的TCPIP配置图标重新配置。,8000,4,x:\windows\icons\NetworkSetup.ico
  87. WAIT 8000
复制代码
原帖由 小咕咚 于 2009-7-31 23:59 发表
在PE3中处理掉clid.reg,winpeshl.ini只用下列一行:
[LaunchApps]
explorer.exe

启动也用快,当然没有加载网络驱动,从理论上讲应该是Explorer启动最快吧?驱动应该也是Explorer自动处理的?

不是的:clid.reg(EXEC =!x:\windows\regedit.exe), ImDisk(RAMD ImDisk),硬件检测和安装(CALL $setupapi.dll),drvload网卡(EXEC =!drvload.exe),explorer(SHEL x:\windows\Explorer.exe)都可交PECMD处理,winpeshl.ini只用下列一行:
[LaunchApps]
wpeinit.exe

[ 本帖最后由 khauyeung 于 2009-8-1 07:48 编辑 ]
作者: 小咕咚    时间: 2009-8-1 21:34
本人PE中已经删除了pecmd、7peldr、clid.reg等,winpeshl.ini只用下列一行:
[LaunchApps]
explorer.exe

照样启动PE3,理论上会更快吗?
作者: khauyeung    时间: 2009-8-1 22:15
原帖由 小咕咚 于 2009-8-1 08:34 发表
本人PE中已经删除了pecmd、7peldr、clid.reg等,winpeshl.ini只用下列一行:
[LaunchApps]
explorer.exe

照样启动PE3,理论上会更快吗?

我看不出理论上会更快的道理。而且,使用PECMD载入explorer外壳有好处:(1)它可以接管Shutdown关机;(2)explorer可于早些时间载入,更早退出桌面给用户。
作者: lqcai    时间: 2009-8-1 22:30
CALL $setupapi.dll,InstallHinfSection DefaultInstall 132 x:\windows\inf\acpi.inf
CALL $setupapi.dll,InstallHinfSection DefaultInstall 132 x:\windows\inf\cpu.inf
……
EXEC =!drvload.exe x:\windows\inf\netxe32.inf

这些驱动不用安装吧,我在基于waik1.x创建的winpe2.1和直接提取win7安装光盘的 winre.wim 定制 winpe3.0 从来都不执行这些驱动安装过程,好像也没什么问题。win7启动按F8启动 winre3.0 也没有安装这些驱动

基于 winbuilder 创建的 winpe2.x/3.0 必须安装这些驱动?


===========

无忧论坛最近不知道怎么回事,经常打不开。

[ 本帖最后由 lqcai 于 2009-8-1 22:32 编辑 ]
作者: khauyeung    时间: 2009-8-1 23:05
原帖由 lqcai 于 2009-8-1 09:30 发表

这些驱动不用安装吧,我在基于waik1.x创建的winpe2.1和直接提取win7安装光盘的 winre.wim 定制 winpe3.0 从来都不执行这些驱动安装过程,好像也没什么问题。win7启动按F8启动 winre3.0 也没有安装这些驱动

...

Call acpi, cpu, usb, usbstor, usbport...是为了再保证这些“必须”系统驱动的载入,特别是USBxxx。
drvload网卡在Winpe2.x不一定需要,因为\windows\inf里面已经有INFCACHE.1预编译文件。但在Winpe3.x里面, INFCACHE.1预编译文件移动到\windows\system32\driverstore,引导时系统不会自动查讯其内容,也就无法得知有这些网卡驱动的存在,所以要特别使用drvload载入那些"非必要"驱动。说到底,WinPE3.0与WinPE2.x不尽相同,与是否由WinBuilder制作无关。

[ 本帖最后由 khauyeung 于 2009-8-1 10:53 编辑 ]
作者: lxl1638    时间: 2009-8-2 02:11
原帖由 khauyeung 于 2009-8-1 22:15 发表

我看不出理论上会更快的道理。而且,使用PECMD载入explorer外壳有好处:(1)它可以接管Shutdown关机;(2)explorer可于早些时间载入,更早退出桌面给用户。


PECMD有自己的特色:
接管关机,让用户可以从开始菜单关机;
保护资源管理器外壳,explorer进程丢失时会马上启动;
接管 Ctrl + Alt + Del,呼叫任务管理器;
安装自定义的系统热键;
安装自定义的托盘菜单。

在 PE 的载入工具中,XPE 插件中的 XPELogon 才有其中的部分功能,PECMD 就 150K 左右的体积,如果用其它工具实现这些功能,怕不是一两个工具就可以做到的,可能要多加几百K或几M的文件,系统中要多几个进程。




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3