无忧启动论坛

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

[更新376#2825]PECMD2012.1.80.13_Win32_64.多窗口多线程.裸机系统2.3.3.1+18M酷M...

    [复制链接]
15541#
发表于 2021-1-16 13:53:09 | 只看该作者
本帖最后由 dos时代菜鸟 于 2021-1-16 14:49 编辑
红毛樱木 发表于 2021-1-16 13:15
ENVI$# &ret=*4 0     //I think 4 bytes is enough.
CALL $--qd --bool --ret:&&r Kernel32.dll,GetFir ...

成功,
但,不明白。
如下理解可对否?

  1. //设置一个16进制内存模式的 变量 &r1 ,等号后面 不明白
  2. ENVI$# &r1=*6 0

  3. //调用 kernel32.dll 函数 GetFirmwareType, 将函数返回值填入 变量 &r1 ,将错误码赋值给变量 r
  4. CALL $--qd --ret:&r Kernel32.dll,GetFirmwareType,*&r1

  5. //把变量 &r1 转换成整数型 赋值给变量 &r2
  6. ENVI?int &r1=&r2

  7. // MESS ret=[%&r1%] [%&r2%] r=%r%
  8. ifex #%r%=0,
  9. {
  10.         mess 未知启动模式。
  11. }
  12. !{
  13.         ifex #%&r2%=1,mess Bios 启动模式
  14.         ifex #%&r2%=2,mess Uefi 启动模式
  15. }
复制代码



点评

微软官方文档说明 https://docs.microsoft.com/zh-cn/windows/win32/api/winbase/nf-winbase-getfirmwaretype Win8及以上系统才支持此API If the function succeeds, the return value is nonzero. //函数执行成  详情 回复 发表于 2021-1-16 15:12
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=422660 看看每周五晚上8点我的直播嘛  详情 回复 发表于 2021-1-16 15:03
回复

使用道具 举报

15542#
发表于 2021-1-16 15:03:00 | 只看该作者
dos时代菜鸟 发表于 2021-1-16 13:53
成功,
但,不明白。
如下理解可对否?

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=422660
看看每周五晚上8点我的直播嘛
回复

使用道具 举报

15543#
发表于 2021-1-16 15:12:20 | 只看该作者
dos时代菜鸟 发表于 2021-1-16 13:53
成功,
但,不明白。
如下理解可对否?

微软官方文档说明
https://docs.microsoft.com/zh-cn ... ase-getfirmwaretype
Win8及以上系统才支持此API
If the function succeeds, the return value is nonzero.  //函数执行成功返回非0
If the function fails, the return value is zero. To get extended error information, call the GetLastError function. //函数执行失败返回0

typedef enum _FIRMWARE_TYPE {
  FirmwareTypeUnknown,
  FirmwareTypeBios,
  FirmwareTypeUefi,
  FirmwareTypeMax
} FIRMWARE_TYPE, *PFIRMWARE_TYPE;
个人认为这个FIRMWARE_TYPE是整数类型,认为是int类型数据,占用4个内存字节空间


  1. ENVI$# &ret=*4 0     //申请4个窄字符空间,也可以用   ENVI$ &ret=*2 0 //申请2个宽字符空间
  2. CALL $--qd --bool --ret:&&r Kernel32.dll,GetFirmwareType,*&ret
  3. FIND $%&&r%=,
  4. {*
  5.     //为空,可以认为没有返回数据,当前环境不支持此API,低于Win8版本的系统
  6.     MESS. 不支持此API。
  7. }!  
  8. {*
  9.     IFEX #%&&r%=0,
  10.     {*
  11.         MESS. API执行失败。
  12.     }!  
  13.     {*
  14.         ENVI?int &ret=&ret1
  15.         //MESS ret=[%&ret%] [%&ret1%] r=%&r%
  16.         IFEX #%&ret1%=0,
  17.         {*
  18.             MESS. 固件类型未知。
  19.         }
  20.         IFEX #%&ret1%=1,
  21.         {*
  22.             MESS. 计算机以旧版BIOS模式启动。
  23.         }
  24.         IFEX #%&ret1%=2,
  25.         {*
  26.             MESS. 计算机以UEFI模式启动。
  27.         }
  28.         IFEX #%&ret1%=3,
  29.         {*
  30.             MESS. 未实现。
  31.         }
  32.     }
  33. }
复制代码



点评

原来如此,那 还是得用 GetFirmwareEnvironmentVariableW 可是这个 要在 buf 里面找东西,我更不会玩了。  详情 回复 发表于 2021-1-16 19:54
回复

使用道具 举报

15544#
发表于 2021-1-16 16:20:02 | 只看该作者
请教:
#code=936T950
ENVI^ ForceLocal=1
ENVI^ EnviMode=1

REGI $HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path,sss
REGI $HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path=%sss%;%&CurDir%


问题1:Path怎么立即生效?
问题2:怎么从Path中删除%&CurDir%,%&CurDir%位置不确定
         {  "Path"="C:\Windows\system32;C:\Windows;%&CurDir%;C:\Windows\System32\Wbem;}

点评

问题1: ■"ENVI " 注册表中环境变量变更通知所有程序(5秒超时,避免假死可用多线程或多进程)。 问题2: 用SED 替换掉%&CurDir%  详情 回复 发表于 2021-1-16 17:11
回复

使用道具 举报

15545#
发表于 2021-1-16 17:11:48 | 只看该作者
feiyike 发表于 2021-1-16 16:20
请教:
#code=936T950
ENVI^ ForceLocal=1

问题1:
■"ENVI " 注册表中环境变量变更通知所有程序(5秒超时,避免假死可用多线程或多进程)。
问题2:
用SED 替换掉%&CurDir%

点评

ENVI &AA=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\Common Files\FAST\CAD; ENVI &BB=C:\Program Files (x86)\Common Files\FAST\CAD SED *ni &SS=0,%&BB%,,%&AA%  详情 回复 发表于 2021-1-16 20:11
回复

使用道具 举报

15546#
发表于 2021-1-16 19:54:50 | 只看该作者
红毛樱木 发表于 2021-1-16 15:12
微软官方文档说明
https://docs.microsoft.com/zh-cn ... ase-getfirmwaretype
Win8及以上系统才支持此 ...

原来如此,那
还是得用
GetFirmwareEnvironmentVariableW

可是这个 要在 buf 里面找东西,我更不会玩了。

点评

pecmd的内存操作基本和c语言一样,我感觉这么回事,只不是可能平时用VS看上去一目了然一些  详情 回复 发表于 2021-1-16 21:16
ENVI &AA=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\Common Files\FAST\CAD; ENVI &BB=C:\Program Files (x86)\Common Files\FAST\CAD SED *ni &SS=0,%&BB%,,%&AA% MES  详情 回复 发表于 2021-1-16 20:10
回复

使用道具 举报

15547#
发表于 2021-1-16 20:10:23 | 只看该作者
dos时代菜鸟 发表于 2021-1-16 19:54
原来如此,那
还是得用
GetFirmwareEnvironmentVariableW

回复

使用道具 举报

15548#
发表于 2021-1-16 20:11:26 | 只看该作者
红毛樱木 发表于 2021-1-16 17:11
问题1:
■"ENVI " 注册表中环境变量变更通知所有程序(5秒超时,避免假死可用多线程或多进程)。
问题2 ...

ENVI &AA=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\Common Files\FAST\CAD;
ENVI &BB=C:\Program Files (x86)\Common Files\FAST\CAD

SED *ni &SS=0,%&BB%,,%&AA%
MESS  %&SS%

%&BB% 含有\和空格 ,怎么处理?  打扰了

点评

综合考虑,我觉得你这种情况前后加个分号可能更好  详情 回复 发表于 2021-1-16 21:18
变量传进去的就没关系,不是变量传的才要特殊处理的吧,我是这么理解的  详情 回复 发表于 2021-1-16 21:15
回复

使用道具 举报

15549#
发表于 2021-1-16 21:15:12 来自手机 | 只看该作者
feiyike 发表于 2021-1-16 20:11
ENVI &AA=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\Common Fil ...

变量传进去的就没关系,不是变量传的才要特殊处理的吧,我是这么理解的

点评

SED *ni &SS=0,C:\\Program Files \(x86\)\\Common Files\\FAST\\CAD,,%&AA% 这样就能处理,可是没法用变量传递了  详情 回复 发表于 2021-1-16 21:43
回复

使用道具 举报

15550#
发表于 2021-1-16 21:16:38 来自手机 | 只看该作者
dos时代菜鸟 发表于 2021-1-16 19:54
原来如此,那
还是得用
GetFirmwareEnvironmentVariableW

pecmd的内存操作基本和c语言一样,我感觉这么回事,只不是可能平时用VS看上去一目了然一些

点评

接触的少,自从 脚本能解决 问题,我很少编译程序了。 进入 V 时代,就更不咋接触了 判断 uefi 的,我暂时 这样解决了。 用 GetFirmwareEnvironmentVariableW 读取 buf 的 还是 没搞明白。  详情 回复 发表于 2021-1-17 09:37
回复

使用道具 举报

15551#
发表于 2021-1-16 21:18:42 来自手机 | 只看该作者
feiyike 发表于 2021-1-16 20:11
ENVI &AA=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\Common Fil ...

综合考虑,我觉得你这种情况前后加个分号可能更好
回复

使用道具 举报

15552#
发表于 2021-1-16 21:43:36 | 只看该作者
红毛樱木 发表于 2021-1-16 21:15
变量传进去的就没关系,不是变量传的才要特殊处理的吧,我是这么理解的
ENVI &AA=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\Common Files\FAST\CAD;
ENVI &BB=C:\Program Files (x86)\Common Files\FAST\CAD


SED *ni &SS=0,C:\\Program Files \(x86\)\\Common Files\\FAST\\CAD,,%&AA%

这样就能处理,可是没法用变量&BB传递了

点评

这样也行,-ts为字符串集翻译  详情 回复 发表于 2021-1-17 01:18
笨方法搞的,试试看。  详情 回复 发表于 2021-1-16 22:22
用SED把&BB里的所有符号替换为\+符号的形式 应该就行了,我不会写。 比如 (换成\(  详情 回复 发表于 2021-1-16 22:16
正则表达式 我真的不会,每次我都请教人。等高手来。  详情 回复 发表于 2021-1-16 22:11
回复

使用道具 举报

15553#
发表于 2021-1-16 22:11:10 | 只看该作者
feiyike 发表于 2021-1-16 21:43
ENVI &AA=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\Common Files ...

正则表达式 我真的不会,每次我都请教人。等高手来。
回复

使用道具 举报

15554#
发表于 2021-1-16 22:16:08 | 只看该作者
feiyike 发表于 2021-1-16 21:43
ENVI &AA=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\Common Files ...

用SED把&BB里的所有符号替换为\+符号的形式  应该就行了,我不会写。
比如
(换成\(
回复

使用道具 举报

15555#
发表于 2021-1-16 22:22:50 | 只看该作者
feiyike 发表于 2021-1-16 21:43
ENVI &AA=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\Common Files ...
  1. ENVI &AA=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\Common Files\FAST\CAD;
  2. ENVI &BB=C:\Program Files (x86)\Common Files\FAST\CAD
  3. SED -ex &BB=0,\\,\\\\,&BB
  4. //MESS. %&BB%
  5. SED -ex &BB=0,\(,\\(,&BB
  6. //MESS. %&BB%
  7. SED -ex &BB=0,\),\\),&BB
  8. //MESS. %&BB%
  9. ENVI< &BB=;
  10. SED -ex -ex -ex &SS=0,&BB,,&AA
  11. MESS. %&SS%
复制代码


笨方法搞的,试试看。
回复

使用道具 举报

15556#
发表于 2021-1-17 01:18:19 | 只看该作者
feiyike 发表于 2021-1-16 21:43
ENVI &AA=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\Common Files ...
  1. ENVI &AA=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\Common Files\FAST\CAD;
  2. ENVI &BB=C:\Program Files (x86)\Common Files\FAST\CAD
  3. ENVI< &BB=;
  4. SED -ts -ex -ex -ex &SS=0,&BB,,&AA
  5. MESS. %&SS%
复制代码
这样也行,-ts为字符串集翻译
最新版才支持
-ex [-ex [-ex]原始串[正则串[替换]]为变量名

点评

感谢! ENVI> %&V%=; ENVI< %&V%=; 这种用法之前不知道,查帮助也没找到,有没有类似用法,用于删除字符  详情 回复 发表于 2021-1-17 10:18
回复

使用道具 举报

15557#
发表于 2021-1-17 09:37:24 | 只看该作者
红毛樱木 发表于 2021-1-16 21:16
pecmd的内存操作基本和c语言一样,我感觉这么回事,只不是可能平时用VS看上去一目了然一些

接触的少,自从 脚本能解决 问题,我很少编译程序了。
进入 V 时代,就更不咋接触了

判断 uefi 的,我暂时 这样解决了。
用 GetFirmwareEnvironmentVariableW 读取 buf 的 还是 没搞明白。

  1.    
  2.     ENVI$# &ret=*4 0     //申请4个窄字符空间,也可以用   ENVI$ &ret=*2 0 //申请2个宽字符空间
  3.     CALL $--qd --bool --ret:&&r Kernel32.dll,GetFirmwareType,*&ret
  4.     FIND $%&&r%=,
  5.     {*
  6.         //为空,可以认为没有返回数据,当前环境不支持此API,低于Win8版本的系统
  7.         //MESS. 不支持此API。
  8.                 CALL $ --ret:r Kernel32.dll,GetFirmwareEnvironmentVariableW,"",{00000000-0000-0000-0000-000000000000},0,0
  9.                 CALL $ --ret:mode1 Kernel32.dll,GetLastError, ""
  10.                 IFEX $%mode1% = 1 ,mess Legacy! find $%mode1%=998 ,mess UEFI ! mess Unknow
  11.     }!  
  12.     {*
  13.         IFEX #%&&r%=0,MESS API Error.!  
  14.         {*
  15.             ENVI?int &ret=&ret1
  16.             IFEX #%&ret1%=0,MESS Unknow0。
  17.             IFEX #%&ret1%=1,MESS legacy
  18.             IFEX #%&ret1%=2,MESS UEFI
  19.             IFEX #%&ret1%=3,MESS Unknow9
  20.         }
  21.     }
复制代码
回复

使用道具 举报

15558#
发表于 2021-1-17 10:18:15 | 只看该作者
本帖最后由 feiyike 于 2021-1-17 13:30 编辑
红毛樱木 发表于 2021-1-17 01:18
这样也行,-ts为字符串集翻译
最新版才支持
-ex [-ex [-ex]原始串[正则串[替换]]为变量名

感谢!
ENVI>  %&V%=;
ENVI<  %&V%=;
这种用法之前不知道,查帮助也没找到,有没有类似用法,用于删除字符

点评

ENVI> &V=; ===> ENVI &V=;%&V% ENVI< &V=; ===> ENVI &V=%&V%;  详情 回复 发表于 2021-1-17 11:51
回复

使用道具 举报

15559#
发表于 2021-1-17 11:51:09 | 只看该作者
feiyike 发表于 2021-1-17 10:18
感谢!
ENVI>  %&V%=;
ENVI<  %&V%=;

ENVI>  &V=;      ===>      ENVI  &V=;%&V%
ENVI<  &V=;      ===>      ENVI  &V=%&V%;

点评

多谢5大 想请教有没有类似 ENVI> &V=; 用于删除字符,感觉这样很简洁  详情 回复 发表于 2021-1-17 13:37
回复

使用道具 举报

15560#
发表于 2021-1-17 13:37:28 | 只看该作者
527104427 发表于 2021-1-17 11:51
ENVI>  &V=;      ===>      ENVI  &V=;%&V%
ENVI<  &V=;      ===>      ENVI  &V=%&V%;

多谢5大
想请教有没有类似   ENVI>  &V=;   用于删除字符,感觉这样很简洁

点评

SET$ &NL=0D 0A SET &A=123456789 MSTR * &B=2,0,&A //左边删1个字符 MSTR * &C=3,0,&A //左边删2个字符 MSTR * &D=4,0,&A //左边删3个字符 MSTR * &E=-2,0,&A //右边删1个字符 MSTR * &F=-3,0,&A  详情 回复 发表于 2021-1-17 18:26
回复

使用道具 举报

15561#
发表于 2021-1-17 18:26:57 | 只看该作者
feiyike 发表于 2021-1-17 13:37
多谢5大
想请教有没有类似   ENVI>  &V=;   用于删除字符,感觉这样很简洁

SET$ &NL=0D 0A
SET &A=123456789

MSTR * &B=2,0,&A   //左边删1个字符
MSTR * &C=3,0,&A   //左边删2个字符
MSTR * &D=4,0,&A   //左边删3个字符

MSTR * &E=-2,0,&A   //右边删1个字符
MSTR * &F=-3,0,&A   //右边删2个字符
MSTR * &G=-4,0,&A   //右边删3个字符

MESS.  [A=%&A%]
\%&NL% [B=%&B%]
\%&NL% [C=%&C%]
\%&NL% [D=%&D%]
\%&NL% [E=%&E%]
\%&NL% [F=%&F%]
\%&NL% [G=%&G%]

点评

多谢!!  详情 回复 发表于 2021-1-17 19:31
回复

使用道具 举报

15562#
发表于 2021-1-17 19:31:55 | 只看该作者
527104427 发表于 2021-1-17 18:26
SET$ &NL=0D 0A
SET &A=123456789

多谢!!
回复

使用道具 举报

15563#
发表于 2021-1-19 19:56:25 | 只看该作者
本帖最后由 527104427 于 2021-1-19 19:59 编辑
mdyblog 发表于 2021-1-15 17:43
"\ArcName\multi(0)disk(0)rdisk(0)partition(2)"  "\Device\Harddisk0\Partition2"  "\Device\HarddiskV ...

发现两个问题,如图:




ENVI &&Drv=Y:
exec =imdisk -a -o awe -m %&Drv% -s 32M -p "/fs:NTFS /q /y"
WAIT 5000
EXEC*- -timeout:1000 -incmd &&A=pecmd TEAM PART list drv %&Drv%,&&B| WRIT *fv -,$+0,&&B
//PART list drv %&Drv%,&&A
MESS. [%&A%]
exec =imdisk -d -m %&Drv%
exec =imdisk -D -m %&Drv%




问题1:PART list drv %&Drv%,&&A     会报错
问题2:EXEC*- -timeout:1000 -incmd &&A=pecmd TEAM PART list drv %&Drv%,&&B| WRIT *fv -,$+0,&&B     不能自动关闭报错窗口






点评

修正了, 仙下载 新版  详情 回复 发表于 2021-1-22 18:37
回复

使用道具 举报

15564#
发表于 2021-1-21 19:53:15 | 只看该作者
新建文件夹什么命令?
WRIT FLNK 都需要实际存在的目录,查帮助没找到

点评

PATH D:\ABC  详情 回复 发表于 2021-1-22 09:00
MDIR  详情 回复 发表于 2021-1-21 20:02
回复

使用道具 举报

15565#
发表于 2021-1-21 20:02:42 | 只看该作者
feiyike 发表于 2021-1-21 19:53
新建文件夹什么命令?
WRIT FLNK 都需要实际存在的目录,查帮助没找到

MDIR

点评

眼睛有问题呀!!  详情 回复 发表于 2021-1-21 20:20
回复

使用道具 举报

15566#
发表于 2021-1-21 20:20:50 | 只看该作者

眼睛有问题呀!!
回复

使用道具 举报

15567#
 楼主| 发表于 2021-1-22 09:00:49 | 只看该作者
feiyike 发表于 2021-1-21 19:53
新建文件夹什么命令?
WRIT FLNK 都需要实际存在的目录,查帮助没找到

PATH   D:\ABC
回复

使用道具 举报

15568#
 楼主| 发表于 2021-1-22 18:37:43 | 只看该作者
527104427 发表于 2021-1-19 19:56
发现两个问题,如图:

修正了, 下载 新版

点评

这个问题解决了。 还有一个问题, PART -drv list volume 能适配一下这种格式不:\Device\Ramdisk{d9b257fc-684e-4dcb-ab79-03cfa2f6b750},目前是获取不到盘符的 PE的X盘就是这种格式的卷名,获取方法是用老大以  详情 回复 发表于 2021-1-22 22:52
回复

使用道具 举报

15569#
发表于 2021-1-22 22:52:29 | 只看该作者
mdyblog 发表于 2021-1-22 18:37
修正了, 下载 新版

这个问题解决了。
还有一个问题,
PART -drv list volume 能适配一下这种格式不:\Device\Ramdisk{d9b257fc-684e-4dcb-ab79-03cfa2f6b750},目前是获取不到盘符的
PE的X盘就是这种格式的卷名,获取方法是用老大以前写的命令:

REGI .HKLM\SYSTEM\CurrentControlSet\Control\SystemBootDevice,&&arcname
CALL GetSymbolic "\ArcName\%&arcname%" &&volume
mess. [%&volume%]   //\Device\Ramdisk{d9b257fc-684e-4dcb-ab79-03cfa2f6b750}

_SUB GetSymbolic
        CALL _INITVAR
        SET &nm=%~1
        SET$ &hb=*8 0 //HANDLE
        SET$ &Attr=*48 0 //OBJECT_ATTRIBUTES
        SET$ &arcName=*16 0 //UNICODE_STRING
        SET$ &retName=*16 0 //UNICODE_STRING
        CALL $--qd --ret:&&ret ntdll.dll,RtlInitUnicodeString,*&arcName,*&nm
        ENVI-addr &&arcName_ptr=&arcName
        SET$ &buf=*4096 0
        ENVI-addr &&buf_ptr=&buf
        SET-long retName=8192:2 //retName.MaximumLength = 4096 * 2
        SET-ptr retName=%&buf_ptr%:%PtrSz% //retName.Buffer = buf
        CALL InitializeObjectAttributes &Attr %&arcName_ptr% %&OBJ_CASE_INSENSITIVE% 0 0
        CALL $--qd --ret:&&ret Ntdll.dll,NtOpenSymbolicLinkObject,*&hb,#%SYMBOLIC_LINK_QUERY%,*&Attr
        SET?ptr hb=&&h       
        CALL $--qd --ret:&&ret Ntdll.dll,NtQuerySymbolicLinkObject,#%h%,*&retName,#0
        CALL $--qd --ret:&&ret Kernel32.dll,CloseHandle,#%h%
        ENVI-ret %~2=%&buf%
_END

_SUB InitializeObjectAttributes //p  n  a  r  s
        CALC &&Sz=6*%PtrSz%
        ENVI-long %~1=%&Sz%:0 //(p)->Length = sizeof(OBJECT_ATTRIBUTES);
        ENVI-ptr  %~1=%~4:%PtrSz% //(p)->RootDirectory = r
        ENVI-ptr  %~1=%~2:(%PtrSz%*2) //(%PtrSz%+%PtrSz%)  //(p)->ObjectName = n
        ENVI-long %~1=%~3:(%PtrSz%*3) //(%PtrSz%+%PtrSz%+%PtrSz%)  //(p)->Attributes = a
        ENVI-ptr  %~1=%~5:(%PtrSz%*4) //(%PtrSz%+%PtrSz%+%PtrSz%+%PtrSz%)  //(p)->SecurityDescriptor = s
        //ENVI-ptr  %~1=0:(%PtrSz%*5) //(p)->SecurityQualityOfService = NULL
_END

_SUB _INITVAR *
        IFEX #%&bX64%=3, Set &PtrSz=8! SET &PtrSz=4
        SET &OBJ_CASE_INSENSITIVE=0x00000040
        SET &SYMBOLIC_LINK_QUERY=0x0001
        SET &FILE_SHARE_RW=0x00000003
        SET &OPEN_EXISTING=3
        CALC #&sizeofMOUNTMGR_MOUNT_POINT=4*3+2*6
        CALC -base=16 #&&IOCTL_MOUNTMGR_QUERY_POINTS=shl(0x0000006D,16) | shl(2,2) //CTL_CODE(MOUNTMGRCONTROLTYPE, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
_END




点评

关键是 part list drv 关键是虚拟设备 不知道 特征信息 不知道怎么和 盘符配对。  详情 回复 发表于 2021-1-23 07:33
回复

使用道具 举报

15570#
 楼主| 发表于 2021-1-23 07:33:44 | 只看该作者
527104427 发表于 2021-1-22 22:52
这个问题解决了。
还有一个问题,
PART -drv list volume 能适配一下这种格式不:\Device\Ramdisk{d9b2 ...

关键是 part list drv

关键是虚拟设备 不知道 特征信息
不知道怎么和 盘符配对。

点评

发现新版的PART list dep突然又不行了。 PART list dep 4,&AMESS. [%&A%] 设备4为挂载的VHD磁盘,上面的命令已经找不到源文件了。 另外,能否直接用盘符呢,像这样: PART list dep F:,&A  详情 回复 发表于 2021-1-23 11:59
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2026-1-21 15:33

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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