无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 14007|回复: 33
打印 上一主题 下一主题

Win7pe内部原理初探

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-16 21:26:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先说一下我对win7的第一印象.首先就是大,大的让人不敢安装,后来找了一个简化版试用一下,给人印象最深的就是win7自带的搜索功能,文件名还没输完,文件就已经找到了!正是因为搜索功能,才想做一个"简化版的win7",  win7pe. 搜索功能是早就实现了,但随着探索的深入,发现与原先的想象大不一样.就现阶段win7pe与xp/2k3pe相差太远了!首先还是体积,要添加一个功能,可能需要增加一个xp/2k3pe的体积.这一点在速度较慢的存储设备,比如u盘上反映最明显,启动速度过慢.原先网上传说的什么win7微内核24mb,估计是启动到smss,同样条件xp只需6mb.
      1,搜索功能.Explorer启动时会装载srchadmin.dll在内存中建立索引,响应组策略.当ExplorerFrame一接收到搜索键盘输入,首先查询用户接口语言PreferUILanguge(zh-CN),根据相应的键值在HEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ContentIndex中查找分词器(chsbrkr.dll,NOISE.CHS),由SearchFolder.dll负责定义范围,最后调用StructureQuery.dll进行结构化查询.当然这中间少不了一大堆的CLSID和相应的文件,比如Query.dll,tquery.dll等.这个搜索功能的子集并不需要正常win7中那么多的Windows Search 组件,甚至不需要Software\Microsoft\Windows Search这个键值,缺点是不能在开始菜单中查找.
      2,Windows服务.为了方便管理,Windows 把服务分成很多组,每一组由一个Svchost.exe管理.Svchost启动时读取注册表HKEY_LOCAL_MACHINE\SoftWare\Microsoft\Windows\CurrentVersion\Svchost中的服务配置,此后启动服务时直接从内存中取得配置参数.所以要想启用所有服务就得先手动把相应服务的配置导入注册表.Windows 缺省情况下给服务的权限只有三种,WinpeShl 通过 LsaAddRights( ) 给服务更多的权限,要不然很多服务启动不了.服务除了自身的权限,还可以从Users"继承"过来权限,比如增加工作集.AudioSrv 比较特殊,正常系统System登陆模式是可以启动的,但在win7pe中即使赋予了权限,却仍然报错权限不够.暂时还不知道原因.
      3,程序中的附件.可别小看这些小程序,它们从一个侧面代表了Win7pe的复杂性,要想在win7pe中使用它们,你会发现并不容易,已经不是拷贝两三个文件所能解决的.比如图片查看器不但需要Windows图像组件的4个文件photometadatahandler.dll,windowscodecs.dll,windowscodecsext.dll,wmphoto.dll;而且还需要windows颜色组件mscms.dll,icm32.dll,以及spool文件夹下的配色文件。这是为了和打印出的图像一致,所见即所得嘛。再说画图,UIRibbon.dll,UIRibbonRes.dll是界面需要必不可少,而如果注册表中有静止图像服务,你就得有wiaservc.dll文件。windows中等待服务的时间可是两分钟啊。所以说,要想要功能,加文件增体积,没错!另外,截图工具和邮件程序更是不像话。截图工具在正常系统的System模式下也不能启动,已经不是文件和注册表的问题了。邮件程序在正常系统中也扭扭捏捏不肯出来,更别提在pe中了。
       4,用户个性化.win7各版本使用相同的文件,用户激活哪个授权就是那个版本,这就是微软的软件限制策略。不但是更换墙纸功能,win7的很多特性都需要验证版本属性。先看themecpl.dll中的一段程序:
//被CThemeCplCore::InitializePage(CThemeCplPage *)和CColorCplPage::LayoutInitialized(void)调用
BOOL IsPersonalizationFeatureAvailable()
{
  BOOL retV = FALSE;
  DWORD dwEnable,dwData;
  
  if ( S_OK == SLGetWindowsInformationDWORD(L"Personalization-Enabled", &dwEnable) )
  {
    if ( dwEnable )
    {
      if ( !IsOS(OS_ANYSERVER) || SHRegGetBOOLW(HKEY_LOCAL_MACHINE, L"Software\Microsoft\Windows\CurrentVersion\Personalization", L"AllowPersonalization", &dwData) >= 0 && dwData )
        retV = TRUE;
    }
  }
  return retV;
}

而SLGetWindowsInformationXX()系列API访问的都是这个键值HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions
所以嘛,应该怎么办大家已经知道了。
要在win7pe中启用主题相对xppe来说已经纯粹是体力活了。补齐文件,补齐注册表,补齐各种服务,最后别忘了把你的DEFAULT拷到Users\Default下改名NTUSER.DAT,然后切换用户到Administrator。
不是我不想说详细点,而是东西多,忙过了还让人觉得得不偿失。

        5,驱动安装.先说如何提取自己的驱动。当自动安装成功驱动后,系统会在System32\DriverStore\FileRepositorycatroot生成备份,比如NV的显卡名字会是nv_disp.inf加一串数字GUID。把此文件夹和System32\DriverStore下的几个文件拷到pe中相应的地方,因为infstrng.dat等文件记录了驱动的信息,安装时是以此为依据来找文件夹的。驱动安装时需要验证数字签名,System32\catroot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}下也得有相应的cat文件。nt5.cat记录的是windows本身的文件,pe中的文件记录不全。若要安装显卡驱动,DX的文件必不可少,缺省情况下窗口管理器也需要DX10.1的文件。当然像dispci.dll,montr_ci.dll这类设备类别安装器,System32\Drivers下相应的DX文件也必不可少。注册表中HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses和HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\class以及HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services中关于DX的项最好也补全。系统即插即用组件可千万不要少啊。声卡驱动还需要Windows Media Foundition 等组件,不过装上了也没声音,现阶段恐怕是不好办。

[ 本帖最后由 yamingw 于 2009-11-17 13:23 编辑 ]

评分

参与人数 1无忧币 +10 收起 理由
南朝 + 10 精品文章

查看全部评分

2#
发表于 2009-11-16 21:44:15 | 只看该作者
5.安装驱动
这个非常关心~~~驱动是非常核心的事情
回复

使用道具 举报

3#
发表于 2009-11-17 00:00:22 | 只看该作者
希望有更多这样的帖子!
回复

使用道具 举报

4#
发表于 2009-11-17 01:25:27 | 只看该作者
听听课,学点原理也好,楼主高才,何不整个3.0的PE出来大家用用?
回复

使用道具 举报

5#
发表于 2009-11-17 12:01:45 | 只看该作者
07pe确实麻烦啊
回复

使用道具 举报

6#
发表于 2009-11-17 17:23:19 | 只看该作者
LZ啊~上次是壁纸问题···这次连搜索什么的都解决了···

小弟佩服不已···
回复

使用道具 举报

7#
发表于 2009-11-17 17:28:19 | 只看该作者
好好学习,天天向上。
回复

使用道具 举报

8#
发表于 2009-11-17 20:35:44 | 只看该作者
提出个问题

PE3.0如何创建服务呢?预先写在注册表里面?

因为ADDS必须要创建服务才能启动
回复

使用道具 举报

9#
发表于 2009-11-17 20:47:09 | 只看该作者
原帖由 cnn_5454 于 2009-11-17 20:35 发表
提出个问题

PE3.0如何创建服务呢?预先写在注册表里面?

因为ADDS必须要创建服务才能启动

adds不需要范围(需要的是卷信息)
回复

使用道具 举报

10#
发表于 2009-11-17 20:48:32 | 只看该作者

回复 #1 yamingw 的帖子

图片查看器不需要配色文件也可以,不过此时只能全屏幕才显示(窗口方式无法看图)
回复

使用道具 举报

11#
发表于 2009-11-17 21:02:09 | 只看该作者
好东西,收藏!!!!!
回复

使用道具 举报

12#
发表于 2009-11-17 22:36:03 | 只看该作者
原帖由 玄天 于 2009-11-17 20:48 发表
图片查看器不需要配色文件也可以,不过此时只能全屏幕才显示(窗口方式无法看图)


而且从vista开始GIF就不动了····面对那么大的文件,直接第三方比较好些···
回复

使用道具 举报

13#
发表于 2009-11-17 22:43:08 | 只看该作者
原帖由 yulon 于 2009-11-17 22:36 发表


而且从vista开始GIF就不动了····面对那么大的文件,直接第三方比较好些···

确实很大,不过我也没用第三方的(直接用XP的图片和传真查看了)
回复

使用道具 举报

14#
发表于 2009-11-18 06:58:32 | 只看该作者
原帖由 玄天 于 2009-11-17 22:43 发表

确实很大,不过我也没用第三方的(直接用XP的图片和传真查看了)


玄天老大,能讲一下在winpe 3.0 中直接用XP的图片和传真查看的方法吗?另外我在你论坛注册时,为什么老说邮件发送失败?我的邮箱地址没错呀!
你做的“xtbeta - PE3 + PE1”看起来很不错,能不能提供其它的下载途径?比如网盘什么的,你看如何?谢谢!
回复

使用道具 举报

15#
发表于 2009-11-18 17:41:29 | 只看该作者
原帖由 hht168 于 2009-11-18 06:58 发表


玄天老大,能讲一下在winpe 3.0 中直接用XP的图片和传真查看的方法吗?另外我在你论坛注册时,为什么老说邮件发送失败?我的邮箱地址没错呀!
你做的“xtbeta - PE3 + PE1”看起来很不错,能不能提供其它的 ...

发广告的太多,现在都是手动验证:)
从xp提取注册表和文件就可以了(就一个shimgvw.dll文件,还需要win7中的shunimpl.dll文件)
xtbeta - PE3 + PE1 进 res.xtbeta.com 就能看见下载
回复

使用道具 举报

16#
发表于 2009-11-18 18:27:50 | 只看该作者
WIN7的搜索功能超慢
回复

使用道具 举报

17#
发表于 2009-12-2 14:00:59 | 只看该作者
呵呵,顶一下,技术文章!
回复

使用道具 举报

18#
发表于 2009-12-2 14:34:15 | 只看该作者
很好的资料……………………
回复

使用道具 举报

19#
发表于 2009-12-3 09:46:00 | 只看该作者
学习原理,参考有用,谢谢楼主了。
回复

使用道具 举报

20#
发表于 2009-12-3 16:21:03 | 只看该作者
学习了 紧跟时代潮流
回复

使用道具 举报

21#
发表于 2009-12-5 15:45:57 | 只看该作者
膜拜一下牛人。。。。。。。
回复

使用道具 举报

22#
发表于 2009-12-7 15:35:31 | 只看该作者
听听课,学点原理也好
回复

使用道具 举报

23#
发表于 2010-2-22 23:16:29 | 只看该作者
楼主太强了,我要好好学习
回复

使用道具 举报

24#
发表于 2010-3-19 22:53:53 | 只看该作者
像高人学习~先膜拜下!
回复

使用道具 举报

25#
发表于 2010-4-26 22:25:08 | 只看该作者
看了 lz的帖子突然想弄个PE 了
回复

使用道具 举报

26#
发表于 2010-5-10 21:46:15 | 只看该作者
楼主是强人呀!谢谢楼主分享!!
回复

使用道具 举报

27#
发表于 2010-5-19 11:35:15 | 只看该作者
就为一个搜索功能?!装个Google桌面搜索不就得了

挺鸡肋的功能,留着嫌它一天到晚硬盘响个不停,关了的话,偶尔搜个文件很不方便。
回复

使用道具 举报

28#
发表于 2010-5-24 16:14:30 | 只看该作者
很想知道楼主的身份和获取这些信息的途径 ····
回复

使用道具 举报

29#
发表于 2010-8-2 13:54:32 | 只看该作者
楼主真是强人呀,好好学习学习
回复

使用道具 举报

30#
发表于 2010-8-21 22:11:24 | 只看该作者
好好学习 天天向上
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-12-19 22:40

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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