无忧启动论坛

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

请教lxl1638 和123MM 关于显示隐藏分区的代码

[复制链接]
跳转到指定楼层
1#
发表于 2008-3-11 20:45:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教lxl1638 和123MM,在你们的PECMD和showdrive软件,
都有给隐藏分区分配盘符的功能,其中showdrive我已经用过,
pecmd的show和SUBJ命令我也看了相关说明。

      现在我遇到这样一个问题,将FAT32或NTFS分区的ID改为12后,
该分区在XP中无盘符,磁盘管理中不可编辑修改,达到保护的目的。
这时grub可以搜索到该分区安装的grldr并启动该分区的PE映像,
但是无法加载外置配置文件和外置程序,因为隐藏分区在PE中也没有盘符。
这时ghost32可以读写该分区。基于以上试验,我设想:

1.  怎样加载该分区的外置程序,若基于pecmd的show和SUBJ命令,是否可行?
    show命令能否基于卷标自动查找这个分区并分配固定盘符?
    或者showdrive能否完成上述要求?

2.  123mm的showdrive程序是用什么函数查找隐藏分区、分配盘符的?
能否改成查找特定卷标并分配特定盘符?
    或者,怎样写一个程序完成这个功能?
2#
 楼主| 发表于 2008-3-11 20:51:14 | 只看该作者
pecmd是否这样:
附件内有若干脚本用于演示 PECMD 的功能,这些脚本都可以在正常的系统中使用,
    其中 PECMD.INI 文件是 32M_U盘版WinPE 的内核配置文件,使用这个配置文件即可自动
  加载隐藏分区中的 WIM外置程序,并且启动后隐藏分区的隐藏属性不变。


/////////////////////////////////////////////////////////////////////////////////
_SUB MountOutSideWIM
     ENVI WimFile=\WIM外置程序示例\PROGRAMS.WIM   `WIM映像文件
     ENVI $MountPath=%ProgramFiles%               `挂载目录
     MOUN %WimFile%,%MountPath%,1                 `挂载WIM文件
     LOAD %ProgramFiles%\PROGRAMS.INI             `载入WIM映像内的INI配置
_END
/////////////////////////////////////////////////////////////////////////////////
回复

使用道具 举报

3#
发表于 2008-3-11 22:20:45 | 只看该作者
DefineDosDevice (DDD_RAW_TARGET_PATH, “x:",“\\device\\harddisk0\\partition2”);
只要一行代码就能把1:2分配盘符x:
是最不可思议的简单的方法
最主要的是,这种方法根本不理会分区格式,只是简单的分配盘符

[ 本帖最后由 123 于 2008-3-11 10:22 PM 编辑 ]
回复

使用道具 举报

4#
 楼主| 发表于 2008-3-12 07:06:07 | 只看该作者
谢谢楼上 123 的提示,在你的showdrive.cpp源文件果然找到类似代码,
因为我不懂C,只会一点delphi,所以原先看代码时没看出来。

     估计我要的函数你的源码里都有用到,就是一时分析不出来,
例如,如何确定某个分区是没有盘符的?是遍历硬盘分区表和盘符一一对照吗?
如何遍历硬盘分区?

     如何卸载某盘符?这个功能PECMD是有的,请lxl1638指教。
回复

使用道具 举报

5#
发表于 2008-3-12 07:53:34 | 只看该作者
如果用批处理可以用rundll32.exe kernel32.dll,DefineDosDevice 1,X:,\\device\\harddisk0\\partition2。
DefineDosDevice第一个参数常用DDD_RAW_TARGET_PATH(其实就是1),DDD_REMOVE_DEFINITION(2),DDD_EXACT_MATCH_ON_REMOVE(4),好像还有一个8不过对应啥我就不清楚了,第三个参数需要为NT格式,比如C:\WINDOWS,要表示成\??\C:\WINDOWS。断开映射磁盘把第三个参数设置为NULL
这个函数主要用来把路径(包括网络路径也可以)映射或断开映射盘,用来隐藏盘效果不是很佳,可以通过我的电脑-管理-磁盘管理找回来。

[ 本帖最后由 netwinxp 于 2008-3-12 02:15 PM 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-6-11 18:17

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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