|
原帖由 fujianabc 于 2011-2-18 20:02 发表 
步骤不用这么多:
1. 挂载system并读取mounteddevices项
2. 从中找到dosdevice项,然后根据dosdevice的内容得到对应的GUID项
3. GUID可以直接用到mountvol命令中
好象这种方法不行,同一分区在XP系统和WinPE系统在dosdevice中对应的GUID是不同的,
从底层原理上来说,这个GUID与挂载分区无关,挂载分区的底层原理是:
1、执行 DefineDosDevice,将一个分区挂上(这步完成后已经分配到了盘符,该分区中的文件已经可以访问,GUID应该是这步完成后产生的);
2、执行 GetVolumeNameForVolumeMountPoint,由函数的第三个参数返回取得这个卷的GUID;
3、最后执行 SetVolumeMountPoint 完成分区挂载的整个过程,执行这步好象会将GUID写入注册表。
本人发现,无需执行第2、第3步也可挂载分区。
附件是XP、WinPE系统注册表 HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices 下的内容,发现两个系统的GUID项不同。
[ 本帖最后由 lxl1638 于 2011-2-19 11:27 编辑 ] |
|