WimTool -- Wim文件的图形视窗处理工具 一、基本介绍 1、WimTool( WimTool-V1.0.7.0901.RAR (238.88 KB))并不是Imagex的GUI,可以脱离Imagex而独立使用。 2、WimTool能提供普通用户对WIM格式文件最常用的处理功能,如制作映像文件、挂载映像、解开Wim映像到硬盘 的目录和向现存的Wim文件加入新的映像卷等。 3、在WimTool中,对Wim文件进行操作处理时,界面元素给用户提供了相当的显示信息,对Wim文件最常见的处理 出现失败时,WimTool会提供失败的说明。 4、WimTool界面采用分页式设计,每页都提供了必要的操作说明、选项要求和注意事项。初次使用的用户请先阅读 每页的操作说明。 二、功能简介 WimTool集成了处理Wim文件的以下常用功能。 1、支持制作不同压缩类型的映像文件。在制作新的映像文件时,用户可以给新的映卷指定映卷名称和映卷描述,并 加上启动标记,同时用户可以在WimTool中指定压缩类型。 2、支持向现有的映像文件添加新的映卷,并可指定新映卷的命称和描述,并加上启动标记。向现有映像文件添加新 的映像卷时,WimTool会自动检测原映像文件的压缩类型,并使新加入的映像卷与之匹配。 3、支持挂载和卸载Wim文件。用WimTool挂载Wim文件时,用户可以选择指定的映像文件和挂载目录,同时也可指 定挂载方式(是否可写或只读)。 4、支持向硬盘解开(应用)Wim文件中指定的映像卷,包括解开分割包。WimTool解开Wim文件时会自动检测用户指 定的Wim是否属分割包,并将其它分包系列也解开到指定目录。 5、支持将单一的大体积Wim文件按指定大小分割,分包文件既支持WimTool解开也支持Imagex解开。 6、支持将某一Wim文件中存在的映像卷导入到另一个Wim文件中。导入映像卷的目标Wim文件既支持Imagex操作, 也支持WimTool操作,如挂载、解开等。 7、支持从已有的Wim文件中删除已有的映像卷条目。 8、支持查看Wim文件的基本属性和详细信息,如映卷名称、映卷描述、压缩类型、映像卷数目、是否属分割包等。 9、支持列出系统所有挂载的Wim映像及其挂载目录、挂载方式等。 10.支持修改现有的Wim映像文件中的某个映卷的名称和描述,并加上启动标记。 11.支持 Mount 、UnMount 和 Apply 三项命令行参数。 12.支持WIM映像文件与WimTool程序直接关联,并可创建右键菜单,方便挂载或打开WIM映像文件。 13.支持列出映像内的文件目录,这个功能相当于ImageX的/DIR参数,可以在PE系统中使用。 14.支持通过配置文件定义捕获映像或解开映像的规则。WimTool的配置文件与ImageX的兼容。在WimTool内置了一份 默认的配置文件,这个配置文件与ImageX的默认配置文件相同。 三、参数说明 WimTool的命令行参数格式如下: <功能参数> [选项] [<F=映像文件> <p=目标路径> <I=映卷ID>] 其中尖括号"< >"内的参数表示必须输入,方括号"[ ]"内的表示可以省略。 1、挂载映像 </Mount> [/W] <F=Wim映像文件> <p=目标路径> <I=映卷ID> 其中参数 "/W" 表示可写方式挂载,省略时表示只读方式挂载,示例: WimTool.EXE /Mount /W F=D:\Test.WIM P=D:\PROGRAMS I=2 2、卸载映像 ①.卸载指定挂载目录的映像 </UnMount> [/C] <p=目标路径> 其中参数 "/C" 表示卸载时将目标目录变化的内容更新到原映像中,省略时表示不更新原映像,示例: WimTool.EXE /UnMount /C P=D:\PROGRAMS ②.卸载所有被挂载的映像 </UnMount> </A> 其中选项 "/A" 表示卸载所有被挂载的映像,且卸载映像时目标目录的变化不会被更新到原映像中,示例: WimTool.EXE /UnMount /A 3、解开映像 </Apply> [/Y] <F=Wim映像文件> <p=目标路径> <I=映卷ID> 其中参数 "/Y" 表示不确认目标目录是否已存在文件而直接解开映像(解开的文件有可能覆盖已存在的文件), 省略该参数时,若目标目录已存在文件则要用户确认才执行解开映像操作,示例: WimTool.EXE /Apply /Y F=E:\Install.WIM P=C: I=3 四、使用注意 1、在Vista系统中,WimTool必须以管理员的身份运行。 2、系统中必须正确安装WimFltr组件,WimTool才能正常工作。 3、在精简的WinPE系统中某些功能可能无法使用。 4、系统的临时目录必须有足够的空间;在PE中使用时,临时目录建议设置到硬盘上。 5、一个映像中只有一个映卷具有启动标记;映像中的映卷号是唯一的,而映卷名和映卷描述仅作为映像卷的说明, 它们并不是唯一的,就是说一个映像中的不同映卷可以具相同的名称和描述。 6、当系统中的WIM文件关联出现错误或异常时,请点[取消文件关联]按钮,再点[设置文件关联]按钮来修复。 7、如果你对捕获映像的配置文件不很了解,请不要修改它,用默认的设置即可。 运行WimTool前,先安装WimFltr组件( WimFltr组件.part1.rar (250 KB) WimFltr组件.part2.rar (191.79 KB)). 再说一句修改别人的WIM用可写方式挂上,修改完后再导出成一个新映像 WiMNT是WIM文件挂载和制作工具 ( WIMNT.rar (215.14 KB)) 1、WiMNT关联WIM文件,双击WIM文件,通过设定或默认值自动完成挂载,并执行全局设定操作,也可以转为手动方式。支持重入,可多次双击WIM文件。 2、WIM文件的挂载信息,用本工具设置。WIM内默认自动执行文件是SETUP.CMD,也可以指定文件。 3、WiMNT可以生成虚拟盘符,自动生成挂载<目录>。 4、WiMNT通过目录右键菜单制作WIM文件,象WINRAR一样方便。 5、第一次使用WIMNT,自动设置关联WIM文件和目录。 将可写挂载勾上---挂载---修改完后----卸载提示后选是就行 WinPE的引导过程 硬盘启动过程: BIOS读MBR(主引导) -> PBR(分区引导) -> NTDETECT.COM -> NTLDR -> BOOT.INI -> AVLDR.PE -> PELDR -> WINNT.SIF -> 镜像文件 光盘启动过程: BIOS读光盘引导信息 -> 光盘上的\i386\NTDETECT.COM -> SETUPLDR.BIN -> 安装信息文件 -> 镜像文件 光盘Ramdisk启动过程: BIOS读光盘引导信息 -> 光盘上的\WXPE\NTDETECT.COM -> SETUPLDR.BIN -> 光盘根目录\WINNT.XPE -> 镜像文件 -> 镜像目录\WXPE\TXTSETUP.SIF -> Imdisk功能介绍 一、加载镜像 1.主要参数 -a 提示载入镜像 -f 或-F 镜像路径:-f后接DOS模式路径 -F后接NT模式路径 -m 载入位点,可虚拟到新的盘符或特定文件夹,#:代表第一个可用盘符 -o ro 只读模式 示例: 加载img到B盘(可写) imdisk -a -f c:\programs.img -m B: imdisk -a -F \Device\harddisk0\partition1\programs.img -m B: 加载img到B盘(只读) imdisk -a -f c:\programs.img -m B: -o ro 加载img到D盘外置程序文件夹 imdisk -a -f c:\programs.img -m B:\外置程序 加载iso imdisk -a -f c:\programs.iso -m B:\外置程序 加载镜像到第一个可用盘符 imdisk -a -f c:\programs.iso -m #: 2.其他 -t vm 内存模式,复制镜像内容到内存,镜像内容更改后退出不会保存到镜像 -o rem 创建USB属性的虚拟盘 示例:imdisk -a -t vm -f C:\programs.img -m #: -o ro,rem 二、创建ramdisk -a 提示创建虚拟盘 -s 虚拟盘大小,可用单位b,k,m,g,t,K,M,G,T;或应用%,代表可用内存的百分比 -m 同前 -p 格式化参数,需调用format.com,如果不带-p参数,创建的盘需手动格式化才能用 -e 扩展虚拟盘容量(这个功能很便利,镜像大小不够用可以随意扩展) -t vm 同前 -o rem 同前 示例: 创建10m的虚拟盘 imdisk -a -s 10m -m B: 创建容量为可用内存10%的虚拟盘 imdisk -a -s 10% -m B: 自动格式化 imdisk -a -s 10M -m B: -p "/FS:NTFS /C /Y /Q" 扩展虚拟盘容量 imdisk -e -s 100m -m B: 保存虚拟盘为img镜像文件:这又是imdisk另一比较有用的功能,创建和修改虚拟盘文件后可保存为img镜像,但好像没有命令行参数,用右键菜单save disk content as image file 三、加载网络镜像,这部分不是很熟悉,也没条件测试,望达人补漏 -f 如 -f \\server\share\programs.img -t proxy -o ip -o comm 四、卸载镜像 -d 示例 imdisk -d -m B: imdisk -d -m D:\外置程序 五、其它用处可能不大(对我来说)或功能不是很明确的参数 -l 列表已设置的虚拟盘 -n 显示imdisk虚拟盘的逻辑单元号时去掉\device\imdisk的前缀?不明白用来干什么 -b 当镜像不是一个分区文件而是整个硬盘时要用到 -S -x -y -S Sectorsize、-x sectors/track、-y tracks/cylinder这三个跟磁盘光盘属性有关,不是很懂 -o cd/fd/hd/rem 加载或创建镜像类型属性为光盘/软盘/硬盘/移动硬件,感觉没什么必要特别指定,用默认的就好,把iso加载为硬盘属性或把img加载为光盘属性都是不能用的。 -u 指定虚拟盘的逻辑单元号 六、总体命令行样式(**指需指定相应内容,??指具体不祥) imdisk -a [-t **] [-m **] [-n] [-o **,**,**...] [-f **/-F **] [-s **] [-b ??] [-S ??] [-u ??] [-x ??] [-y ??] [-p **] imdisk -d [-m **] [-u ??] imdisk -l [-m **] [-u ??] imdisk -e [-s **] [-m **] [-u ??] | |
WinPE中的SYSTEM32 下的几乎所有文件及说明(一) aclui.dll .....Security Descriptor Editor,没有它,注册表编缉器会无法运行 ACTIVEDS.DLL .....(ADs 路由层 DLL). 没有它, 打开事件查看器会出错 ADSLDPC.DLL ......ADs LDAP 提供程序 C DLL ADVAPI32.DLL .....(高级 Windows 32 基本 API)...这个 avicap32.dll 用于将从数码摄像头捕获的视频另存为 AVI 格式. 如果你正在录制视频或是正在视频聊天, 那么你将服务终止这个进程 ADVPACK.DLL ......(Advpack Library). Windows 用它来验证 .inf 文件. 如果 advpack.dll 不可用, windows 将无法正常工作. (没有它, 打开系统属性会出错.) ASYCFILT.DLL ....我所安装的一个程序 StatBar, 需要这个文件 ATL.DLL .......... Windows XP ATL 模块 (Unicode) AUTHZ.DLL ........认证框架 BASESRV.DLL ......Windows NT BASE API Server DLL BATMETER.DLL .....(电池助手 DLL). 打开电源选项需要这个文件 bootvid.dll .....VGA 启动驱动 BROWSELC.DLL .....外壳浏览器用户界面库 browser.dll .....Computer Browser Service DLL BROWSEUI.DLL ..... 外壳浏览器用户界面库 browsewm.dll ...BrowseWM Player CABINET.DLL ......(Microsoft? Cab 文件 API). 想要正常打开系统选项就要保留这个文件 CALC.EXE .......(计算器). Windows 自带的计算器程序 CFGMGR32.DLL ...配置管理转发器 DLL,没有它,无法在资源管理器中对磁盘进行格式化 clb.dll .....Column List Box,没有它,注册表编缉器会无法运行 CMD.EXE ....(命令行).可提供 Windows NT 下的命令行提示符 (MS-DOS 外壳解释程序) comcat.dll .....Microsoft C 运行时库文件 COMCTL32.DLL .....通用控件库 COMDLG32.DLL .....通用对话框 DLL console.dll ....控制面板控制台小程序 control.exe ....Windows 控制面板 (这个不是实际上的控制面板.) CONVERT.EXE ....(转换). 用于将分区格式从 FAT 转为 NTFS 以及从 NTFSv4 转为 NTFSv5 CREDUI.DLL .......授权证书管理程序用户界面 crtdll.dll .....加密管理器 CRYPT32.DLL ......32 位加密 API CRYPTDLL.DLL .....加密管理程序 CRYPTUI.DLL ......Microsoft 加密用户界面提供程序 CSRSRV.DLL .......客户端服务器运行时进程 CSRSS.EXE ........(客户端-服务器运行时服务器子系统). 用于维护Win32 系统环境控制台以及其它基本功能. desk.cpl ......显示属性 deskmon.dll .... 高级显示监视器属性 devenum.dll ....设备枚举 devmgr.dll .....设备管理器 MMC 管理工具 diskcopy.dll ...Windows DiskCopy dmintf.dll ..... 磁盘管理 DCOM 接口存根 dmutil.dll ..... 逻辑磁盘管理器工具库 DNSAPI.DLL .......DNS 客户端 API DLL fmifs.dll ......FM IFS 工具 DLL framebuf.dll ...帧缓冲显示驱动 GDI32.DLL ........GDI 客户端 DLL(含有XCMD设置字体的函数) hal.dll ........(硬件抽象层). 隐藏 Windows 应用程序处理硬件问题的复杂性(启动之后可删除的文件) hccoin.dll .....USB 协同安装程序 hotplug.dll ....用于安全移除硬件, 比如, U 盘 icaapi.dll ..... TermDD 设备驱动的 DLL 接口 ifsutil.dll ....IFS 工具 DLL IMAGEHLP.DLL .....Windows NT 图像助手(IE显示图像需要) imm32.dll ........(Windows XP IMM32 API 客户端 DLL). 用于正常打开系统属性 inetmib1.dll ...Microsoft MIB-II subagent input.dll ......(文本输入 DLL). 语言和区域设置需要这个文件来显示相关对话框 IPHLPAPI.DLL .....IP 助手API iyuv_32.dll ....Intel Indeo(R) Video YUV Codec (文件版本: 5.1.2600.2180) kbdus.dll .....美国键盘布局 kdcom.dll .......内核调试程序硬件扩展 DLL(启动之后可删除的文件) KERBEROS.DLL .....Kerberos 安全包 kernel32.dll .....Windows NT BASE API 客户端 DLL LINKINFO.DLL .....Windows 卷目追踪 lpk.dll ........会话注销工具 LSASRV.DLL .......LSA 服务器 DLL LSASS.EXE ........(LSA 安全服务). 本地安全认证服务器进程 main.cpl ......鼠标 MFC42.DLL ......MFCDLL 共享库 mfc42u.dll .....MFCDLL 共享库 MPR.DLL ..........多个提供程序路由 DLL MPRAPI.DLL .......(Windows NT MP 路由管理DLL) mprui.dll .......多个提供程序 MSASN1.DLL .......ASN.1 运行时 API mscat32.dll ....MSCAT32 Forwarder DLL mscms.dll ........(Microsoft 色彩匹配系统 DLL). 这个模块中包含了一些用于校正图像色彩,以及用于色彩映射, 色彩管理的函数 MSCTF.DLL ......MSCTF 服务器 DLL msftedit.dll ..RTF 文本编辑控件, v4.1 MSGINA.DLL .......Windows NT 登录 GINA DLL msh263.drv ....Microsoft H.263 ICM 驱动 msidntld.dll ...Microsoft 标识管理器 MSIMG32.DLL ......GDIEXT 客户端 DLL MSIMTF.DLL .....Active IMM 服务器 DLL msls31.dll .......(Microsoft 线性服务库文件). Internet Explorer 需要这个文件 msports.dll ....端口类别安装程序 MSPRIVS.DLL ......Microsoft 特权转换 msrle32.dll ....Microsoft RLE 压缩器 mssign32.dll ...Microsoft 受信赖签证 APIs mssip32.dll ....MSSIP32 Forwarder DLL msvcirt.dll ....Windows NT IOStreams DLL MSVCP60.DLL ......Microsoft (R) C++ 运行时库文件 msvcrt40.dll ...VC 4.x CRT DLL (向后兼容 msvcrt.dll) MSVCRT.DLL .......Windows NT CRT DLL msvfw32.dll ...Microsoft Video for Windows DLL msvidc32.dll ...Microsoft Video 1 压缩器 mydocs.dll .....我的文档文件夹用户界面 ncxpnt.dll .....Netork (不是 Network) 安装向导支持 DLL NDDEAPI.DLL ......Network DDE 共享管理 APIs NET1.EXE .......(Network). 与 NET.EXE 的功能相同(在使用net命令的时候需要调用net1,若不存在就无法完成操作) NET.EXE ........(Network). 用于管理, 配置和查看与网络相关的信息, 例如 net use, net print, net user, 等等 NETAPI32.DLL .....Net Win32 API DLL netrap.dll .....网络远程管理协议DLL netui0.dll .....NT LM UI Common Code - GUI Classes (文件版本: 5.1.2600.2180) netui1.dll .....NT LM UI Common Code - GUI Classes (文件版本: 5.1.2600.2180) newdev.dll ....添加硬件设备库文件 NOTEPAD.EXE ......(记事本). 文本编辑工具 NTDLL.DLL ........NT Layer DLL NTDSAPI.DLL ......(NT5DS Library) Windows 的目录服务需要这个ntdsapi.dll 库文件. 目录服务可令 Windows 能够更容易地定位设备以及网络上的资源 ntlanman.dll ...Microsoft? 局域网管理器 ntlsapi.dll ....Microsoft? 许可服务器接口 DLL NTMARTA.DLL ......Windows NT MARTA 提供程序 NTOSKRNL.EXE ..(操作系统内核). Windows XP 操作系统内核, 启动画面就在这个文件中 ocmanage.dll ..可选组件管理库 ODBC32.DLL .......Microsoft Data Access - ODBC 驱动管理器 ODBCBCP.DLL ......(Microsoft BCP for ODBC). 没有这个文件的话, 当你打开电脑管理时会遇到一个错误. 但还是可以打开电脑管理. (我把电脑管理删掉了.) ODBCINT.DLL ......Microsoft Data Access - ODBC 资源 OLE32.DLL ........Microsoft OLE for Windows oleacc.dll .......(Active Accessibility 核心组件) OLEAUT32.DLL ..... Windows 要用它执行OLE (对象链接和嵌入) 操作. OLE 允许将程序创建的对象嵌入到另一个程序的文档或对象中. 例如. 将一个 Excel 表格嵌入到 Word 文档中. Windows 应用程序要经常用到OLE, 因此一般你是无法将其删除的 OLECLI32.DLL ..... 对象链接和嵌入客户端库文件 OLECNV32.DLL .....Microsoft OLE for Windows oledlg.dll .......(Microsoft Windows(TM) OLE 2.0 用户接口支持) OLESVR32.DLL ..... 对象链接和嵌入服务器库 OLETHK32.DLL .....Microsoft OLE for Windows perfctrs.dll ...性能计数器 powercfg.cpl ..电源选项 POWRPROF.DLL .....(电源配置助手 DLL). 如要正常打开设备管理器中的键盘属性, 需要保留这个文件 PROFMAP.DLL ......Userenv PSAPI.DLL ........进程状态助手 pstorec.dll ..... 受保护存储的COM 接口 pstorsvc.dll .... 受保护存储服务器 REG.EXE ........(注册表控制台). 一个用于查询和修改注册表的命令行工具 REGAPI.DLL .......注册表配置 APIs REGSVR32.EXE ...(注册服务器). 用于注册组件, DLL riched20.dll ...RTF 编辑控件, v3.0 字符编辑器相关文件,Winrar查看功能缺该文件的话,显示空白;Restorator,QQ游戏需要 | |
WinPE中的SYSTEM32 下的几乎所有文件及说明(二) riched32.dll...字符编辑器相关文件 rnr20.dll ......Windows Socket2 命名空间 DLL RPCRT4.DLL .......远程过程调用运行时 RPCSS.DLL ........分布式 COM 服务 RSAENH.DLL .......Microsoft 增强加密提供程序 rshx32.dll ....安全外壳扩展 rtipxmib.dll ...Microsoft Router IPX MIB subagent RTUTILS.DLL ......路由工具 RUNDLL32.EXE ...(Run DLL). 用于运行 DLL 文件的命令行工具 RUNONCE.EXE ....(Run Once). 用于将要执行的任务添加定义到 RunOnce 注册表项中 SAMLIB.DLL .......SAM 库DLL SAMSRV.DLL .......SAM 服务器 DLL SCESRV.DLL .......Windows安全配置编辑器引擎 SCHANNEL.DLL .....TLS / SSL 安全提供程序 SECUR32.DLL ......安全支持提供程序接口 security.dll ...安全支持提供程序接口 services.exe .....(安全和控制程序). Windows XP 用它管理服务 SETUP.EXE ......(Setup). Windows 安装程序 SETUPAPI.DLL .....Windows Setup API SFC.DLL ..........Windows 文件保护 SFC_OS.DLL .......Windows 文件保护 sfcfiles.dll .....Windows 2000 系统文件检查工具 SHDOCVW.DLL ...... 外壳文档对象和控件库 SHELL32.DLL ......Windows 外壳通用 Dll shellstyle.dll ..Windows 外壳样式资源Dll SHFOLDER.DLL .....(外壳文件夹服务). 若要正常打开系统属性, 需要保留此文件 shgina.dll .....Windows 外壳用户登录 <-- 这个文件用于从你的桌面上重启电脑. 进一步讲, 一旦你将其删除或是将其从 system32 文件夹中移走, 那么即使你将其放回, 也照样无法从你的桌面重新启动 shimgvw.dll ......(Windows 图片和传真查看器). 我要用它看电脑上的图片 SHLWAPI.DLL ......外壳 Light-weight 工具库 sigtab.dll .....文件完整性设置(系统属性-->硬件-->驱动程序签名选项的对话框) SMSS.EXE .........(会话管理器). 是个会话管理器, 用于在启动期间创建Windows XP 环境 snmpapi.dll ....SNMP 工具库 softpub.dll ....Softpub Forwarder DLL softpub.dll ....Softpub Forwarder DLL STOBJECT.DLL .....(Systray 外壳服务对象). stobject.dll 是个库文件, 包含了一些像是图标这样的资源 托盘音量图标 电池图标 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad] "SysTray"="{35CEC8A3-2BE6-11D2-8773-92E220524153}" [HKEY_CLASSES_ROOT\CLSID\{35CEC8A3-2BE6-11D2-8773-92E220524153}\InProcServer32] @=" stobject.dll" 由Explorer读取并加载 streamci.dll ... 流设备类别安装程序 SVCHOST.EXE ...... Win32 服务的常规宿主进程 SXS.DLL ..........Fusion 2.5 sysdm.cpl .....系统属性 SYSTRAY.EXE ....(系统栏). 系统栏提供程序. 它能控制任务栏和系统栏. 但是, 没它的话, 也没有什么不正常的地方 TASKMGR.EXE ...(任务管理器). 平时使用的任务管理器 themeui.dll ......Windows 主题 API timedate.cpl ..时间和日期 ufat.dll .......FAT 工具 DLL ULIB.DLL .......文件工具支持 DLL umdmxfrm.dll .....Unimodem 转换模块 umpnpmgr.dll .....用户模式即插即用服务 untfs.dll ......NTFS 工具 DLL ureg.dll .......注册表工具 DLL urlmon.dll ....... Win32 OLE32 扩展 usbui.dll ...USB 用户界面 Dll user32.dll .......Windows XP 用户 API 客户端 DLL userenv.dll ......用户环境 USERINIT.EXE ..(用户初始化). 在用户登录之后, 用于确定操作系统的环境 usp10.dll .....Uniscribe Unicode 脚本处理器 UXTHEME.DLL ......Microsoft UxTheme Library VERSION.DLL ......版本检查和文件安装库 vga64k.dll .....32K/64K 色 VGA\SVGA 显示驱动 vga.dll .....VGA 16 色显示驱动 w32topl.dll ....Windows NT Topology 维护工具 WDIGEST.DLL ......Microsoft 采集访问 WIN32K.SYS .......多用户 Win32 驱动 WININET.DLL ......Internet 扩展 winipsec.dll ....Windows IPSec SPD Client DLL WINLOGON.EXE .....Windows NT 登录应用程序 WINMM.DLL ........MCI API DLL WINRNR.DLL .......LDAP RnR 提供程序 DLL WINSPOOL.DRV ...Windows 缓冲池驱动 WINSRV.DLL .......Windows Server DLL WINSTA.DLL .......工作站库文件 WINTRUST.DLL .....Microsoft 受信赖证书 APIs WLDAP32.DLL ......Win32 LDAP API DLL WMI.DLL ..........(WMI DC 和 DP 功能). 若要正常打开电脑管理, 则需要保留此文件 WS2_32.DLL .......Windows Socket 2.0 32 位 DLL WS2HELP.DLL ......Windows Socket 2.0 助手 wshnetbs.dll ...Netbios Windows套接层助手DLL WSOCK32.DLL ......(Windows 32 位套接层 DLL). 某些涉及到网络的软件会需要它 WTSAPI32.DLL .....Windows 终端服务器 SDK API netid.dll -----(系统属性-->计算机名) fontview.exe --字体查看器 fontext.dll --与字体文件夹视图安装字体有关 | |
更新外置驱动(声卡、网卡、显卡和无线网卡) 老毛的PE的驱动在 \外置程序\PE_OUTERPART下 绝版pe 在\programs\PE 其他版本 可以通过搜索DRIVERS_VGA.CAB 来确定 外置程序和programs都是隐藏的 可在任意分区下 U盘 移动硬盘也行 C盘 D盘 E盘 都有可能 大家自己找吧! 目录中的 DRIVERS_NET_WIRELESS是无线网卡驱动 DRIVERS_VGA.CAB 是显卡驱动 DRIVERS_NET.CAB是普通网卡驱动 DRIVERS_SOUND.CAB是声卡驱动 注意两点 用XCAB制作压缩包是一定要选上 处理INF 要注意驱动包的名字 (不能把网卡驱动命名为DRIVERS_SOUND.CAB) 如果要添加驱动不覆盖原来的驱动 先解压原来的驱动,把自己的驱动加进去(是文件夹不是压缩包) 再用XCAB打包 WinPE 驱动程序最终解决方案 1. 把每种驱动放在一个目录中(每个 INF 文件名前,加上“_”开头,作为起始标志),然后把所有的驱动程序打包成为一个 CAB 文件。 2. 用下面的程序代码,指定 CAB 路径,即可自动从 CAB 安装驱动: 1) 代码会自动检测所有 PCI 设备; 2) 然后遍历 CAB 内的一个 INF 文件内容; 3) 如果找到匹配的硬件,则解压缩 INF 所在目录中随后的 所有文件到 %TEMP% 中; 4) 安装驱动程序; 5) 转跳到 2,继续遍历下一个 INF。 代码如下: // Header #include <SetupAPI.h> #include <DevGuid.h> #include <RegStr.h> #include <CfgMgr32.h> #pragma comment(lib, "SetupAPI.lib") #ifdef _UNICODE #define STR_UpdateDriverForPlugAndPlayDevices "UpdateDriverForPlugAndPlayDevicesW" #else #define STR_UpdateDriverForPlugAndPlayDevices "UpdateDriverForPlugAndPlayDevicesA" #endif typedef BOOL (WINAPI* PUPNP)(HWND hWnd, PCTSTR ptzID, PCTSTR ptzPath, DWORD dwFlags, PBOOL bReboot); // Compare device PSTR DevCmp(PSTR pszStr1, PSTR pszStr2) { PSTR p = pszStr2; for (UINT i = 0; *p; p++) { if ((*p == '&') && (++i == 2)) { break; } } UINT uCmp = (UINT) (p - pszStr2); p = pszStr1; while (*p) { if (UMemCmp(p, pszStr2, uCmp) == 0) { return p; } p++; } return NULL; } // CAB callback UINT CALLBACK DevProc(PVOID pvContext, UINT uMsg, UINT_PTR upParam1, UINT_PTR upParam2) { static BOOL s_bExtract = FALSE; static TCHAR s_tzDevID[MAX_NAME] = {0}; static TCHAR s_tzInfPath[MAX_PATH] = {0}; if (uMsg == SPFILENOTIFY_FILEINCABINET) { // Is INF file or followed by INF file FILE_IN_CABINET_INFO *p = (FILE_IN_CABINET_INFO*) upParam1; PCTSTR q = UStrRChr(p->NameInCabinet, '\\'); q = q ? (q + 1) : p->NameInCabinet; if ((*q == '_') || s_bExtract) { // Extract INF or driver file if (*q == '_') { q++; } UStrCopy(p->FullTargetName + GetTempPath(MAX_PATH, p->FullTargetName), q); return FILEOP_DOIT; } else { // Skip return FILEOP_SKIP; } } else if (uMsg == SPFILENOTIFY_FILEEXTRACTED) { PCTSTR ptzTarget = ((FILEPATHS*) upParam1)->Target; if (UStrStr(ptzTarget, TEXT(".INF")) == NULL) { // Not INF return NO_ERROR; } // Open INF PSTR pszFile = (PSTR) UFileLoad(ptzTarget, NULL); if (pszFile == NULL) { return NO_ERROR; } for (PSTR p = (PSTR) pvContext; *p; p += UAStrLen(p) + 1) { if ((*p != '#') && DevCmp(pszFile, p)) { // Found Device UAStrToStr(s_tzDevID, p, MAX_NAME); UStrCopy(s_tzInfPath, ptzTarget); //UTrack(TEXT("\r\nFound %s: %s\r\n\r\n"), s_tzDevID, s_tzInfPath); s_bExtract = TRUE; *p = '#'; return NO_ERROR; } } // This is next INF if (s_bExtract) { // Previous is uses INF s_bExtract = FALSE; HMODULE hLib = LoadLibrary(TEXT("NewDev")); if (hLib) { // Install INF PUPNP p = (PUPNP) GetProcAddress(hLib, STR_UpdateDriverForPlugAndPlayDevices); if (p) { BOOL bReboot = FALSE; p(NULL, s_tzDevID, s_tzInfPath, 3, &bReboot); UTrack(TEXT("\r\nInstall %s: %s\r\n\r\n"), s_tzDevID, s_tzInfPath); } FreeLibrary(hLib); } } // Delete INF UFileDelete(ptzTarget); } return NO_ERROR; } #define MAX_DevID (MAX_STR * 4) UINT DevEnum(PSTR pszDev, PCTSTR ptzClass = REGSTR_KEY_PCIENUM) { // Lookup device HDEVINFO hDev = SetupDiGetClassDevs(NULL, ptzClass, 0, DIGCF_PRESENT | DIGCF_ALLCLASSES ); if (hDev == INVALID_HANDLE_VALUE) { return E_FAIL; } // Lookup Device ID UINT uSize = 0; SP_DEVINFO_DATA sdDev = {sizeof(SP_DEVINFO_DATA)}; for (UINT i = 0; (uSize < MAX_DevID) && SetupDiEnumDeviceInfo(hDev, i, &sdDev); i++) { DWORD dwData; DWORD dwSize = MAX_DevID- uSize; if (SetupDiGetDeviceRegistryPropertyA(hDev, &sdDev, SPDRP_HARDWAREID, &dwData, (PBYTE) pszDev + uSize, dwSize, &dwSize)) { #ifndef _DEBUG // List problem device only ULONG uProblem = 0; ULONG uStatus = DN_HAS_PROBLEM; CM_Get_DevNode_Status(&uStatus, &uProblem, sdDev.DevInst, 0); if (uProblem) #endif { uSize += UAStrLen(pszDev + uSize) + 1; } } } SetupDiDestroyDeviceInfoList(hDev); pszDev[uSize] = pszDev[uSize + 1] = 0; return uSize; } // Install device HRESULT Devi(PTSTR ptzCmd) { // Skip if Control Key pressed. if (GetAsyncKeyState(VK_CONTROL) & 0x8000) { return S_FALSE; } // Enum device ID CHAR szDev[MAX_DevID]; UINT uSize = DevEnum(szDev, TEXT("PCI")); uSize += DevEnum(szDev + uSize, TEXT("USB")); if (uSize == 0) { // No device return ERROR_DEVICE_NOT_CONNECTED; } #ifdef _DEBUG for (PSTR p = szDev; *p; p += UAStrLen(p) + 1) { UTrack(TEXT("%hs\r\n"), p); } #endif // Lookup CAB file TCHAR tzPath[MAX_PATH]; ExpandEnvironmentStrings(ptzCmd, tzPath, MAX_PATH); SetupIterateCabinet(tzPath, 0, DevProc, szDev); return S_OK; } | |
欢迎光临 无忧启动论坛 (http://wuyou.net/) | Powered by Discuz! X3.3 |