|
本帖最后由 mdyblog 于 2021-1-26 23:49 编辑
前8 字节的前 4字节是命令, 先填好, 指示返回什么信息, 8B开始是信息。
//由于对齐, 中间4字节(4-7)没有用
参见 https://docs.microsoft.com/zh-cn/windows/win32/api/virtdisk/ns-virtdisk-get_virtual_disk_info?redirectedfrom=MSDN
新版 命令 可以参数 传入
VHD_Query.wcs
{ //VHD长度
SET#% &V=*8192
//SET-int64 V=1:0
SET-int64 V=0:8
MOUN -vhd -query -r "Q:\VHDTEST\BASE_S1_S1.vhd",&V,&bytes,1
SET?int64 V=&szv:8
SET?int64 V=&szp:16IFEX #%&bytes%>=24, MESS. bytes[%&bytes%] szv[%&szv%] szp[%&szp%]
EXIT
}
{ //差分VHD 的 父亲
SET#% &V=*8192
//SET-int64 V=3:0
SET-int64 V=0:8
MOUN -vhd -query -r Q:\VHDTEST\BASE_S1_S1.vhd,&V,&bytes,3
SET?long V=&&ParentResolved:8
ENVI-mkfixdummy &&nm=&V@12;~
IFEX #%&bytes%>=16, MESS. [%bytes%] [%ParentResolved%] [%&nm%]
EXIT
}
{ // 类型
SET#% &V=*8192
//SET-int64 V=6:0 //GET_VIRTUAL_DISK_INFO_VIRTUAL_STORAGE_TYPE
SET-int64 V=0:8
MOUN -vhd -query -r Q:\VHDTEST\BASE_S1_S1.vhd,&V,&&bytes,6
ENVI?long &V=&&tp:8 //2=VIRTUAL_STORAGE_TYPE_DEVICE_VHD 3=VIRTUAL_STORAGE_TYPE_DEVICE_VHDX
IFEX #%&bytes%>=12, MESS. bytes[%&bytes%] type[%&tp%]
}
{ //子类型
SET#% &V=*8192
//SET-int64 V=7:0 //GET_VIRTUAL_DISK_INFO_PROVIDER_SUBTYPE
SET-int64 V=0:8
MOUN -vhd -query -r Q:\VHDTEST\BASE_S1_S1.vhd,&V,&bytes,7
ENVI?long &V=&&subtp:8 //2=Fixed. 3=Dynamically 4=Differencing
IFEX #%&bytes%>=12, MESS. bytes[%&bytes%] subtype[%&subtp%]
}
|
|