zy_sunshine 发表于 2010-2-20 01:40:13

帮忙测试一个磁盘信息获取软件

做了一个磁盘信息获取的程序,在win下运行。
程序是在Win7下编译的。
:mrgreen: 一定不会破坏数据,俺保证,因为没有任何写的操作。
大家帮忙测试一下,将输出的结果复制给俺。
另外请xp下的兄弟测试一下能否运行。
ps:win有64位的也帮忙看下能不能运行。

关键是在里面做了磁盘分区表的整体分析,获得了grub(即linux)表示磁盘分区的格式 例如 (hd0,0)

[ 本帖最后由 zy_sunshine 于 2010-3-6 13:08 编辑 ]

sha__ou 发表于 2010-2-20 08:30:58

我试了。在XP下无法运行。显示如下:

xx_zz 发表于 2010-2-20 11:25:28

WIN2003server,同上。

zy_sunshine 发表于 2010-2-20 14:05:26

感谢两位的测试:)
vc2008的 windows.h内Win32API做了好多改变...

我用vc重新编译了一下,大家帮忙重新测试,关键看一下 grub_hd字段是否对应正确:)

我的测试的结果如附件disk_info.rar Win7下测试

sejishikong 发表于 2010-2-20 14:29:29

xp:

E:\driver_info_vc6>driver_info_vc6.exe
I:
DeviceIoControl failed with error code 21
(EE)获取磁盘偏移地址错误

zy_sunshine 发表于 2010-2-20 15:19:05

你那个I:盘是不是光驱? 虚拟光驱? 弹出后的虚拟光驱?

xx_zz 发表于 2010-2-20 15:22:51

我这里的情况有点特殊。机器使用的是2块IDE硬盘,其中有1块是通过IDE-SATA转接卡接在主板SATA接口的。WIN2003/MAGIC双系统和GRUB均安装在使用IDE通道的硬盘上,在WIN上可能由于SATA设备优先的原因,SATA通道硬盘为hd0,IDE通道硬盘为hd1。但是在MAGIC上,会把SATA通道硬盘识别为sd硬盘,所以MAGIC中的hd0就变成了在WIN下的hd1。附图及输出信息,GRUB配置文件。

sejishikong 发表于 2010-2-20 15:30:33

原帖由 zy_sunshine 于 2010-2-20 15:19 发表 http://www.linuxfans.org/bbs/images/common/back.gif
你那个I:盘是不是光驱? 虚拟光驱? 弹出后的虚拟光驱?
I盘是读卡器。

zy_sunshine 发表于 2010-2-20 15:45:47

整体上是没有问题的,
只是windows和linux在识别硬盘的先后顺序上是不同的,我在win下也就只能调用winapi,要是想改变识别硬盘的顺序是不太可能的...这个问题在win下无解.:?

怪就怪在你的grub识别的时候也是用的(hd0,8)
很可能windows和 grub OR linux 在识别sd hd的顺序上是相反的.

可以在win下判断sd hd 再重新排序硬盘...麻烦了

zy_sunshine 发表于 2010-2-20 16:15:18

原帖由 sejishikong 于 2010-2-20 15:30 发表 http://www.linuxfans.org/bbs/images/common/back.gif

I盘是读卡器。

未指明物理地址的读卡器,汗,和弹出的虚拟光驱是一个样子的。

如果你插入读卡器,应该会正常。

这个是在xp下vc6.0编译的,xp下测试正常,碰到不可读的分区只输出一个警告信息,并跳过。

haulm 发表于 2010-2-20 18:42:15

原帖由 zy_sunshine 于 2010-2-20 16:15 发表 http://www.linuxfans.org/bbs/images/common/back.gif


未指明物理地址的读卡器,汗,和弹出的虚拟光驱是一个样子的。

如果你插入读卡器,应该会正常。

这个是在xp下vc6.0编译的,xp下测试正常,碰到不可读的分区只输出一个警告信息,并跳过。 ...
出错 Exception Processing Message c0000a3 Parameters 764ebf7c 764ebf7c

zy_sunshine 发表于 2010-2-20 19:17:53

回复 11# haulm 的帖子

是什么系统?

磁盘结构是什么样的?

haulm 发表于 2010-2-20 19:43:13

原帖由 zy_sunshine 于 2010-2-20 19:17 发表 http://www.linuxfans.org/bbs/images/common/back.gif
是什么系统?

磁盘结构是什么样的?
双sata硬盘,双系统,一个硬盘NTFS FAT32,另一个EXT4分区。

zy_sunshine 发表于 2010-2-20 19:47:30

你是在哪个系统中运行的??

凤凰涅磐 发表于 2010-2-21 10:12:23

name                C:
media_type        固定磁盘
disk_num        0
is_boot                1
driver_num        1
is_mbr                1
abs_offset        0x32256
fs_type_hex        0xc
fs_type_name        W95 FAT32 (LBA)
size_byte        20982657024 Bytes
size_human        19 GB

对应的磁盘分区表记录为:
disk_num        0
partition_num        1
grub_num        0
is_boot                1
abs_offset        0x32256
size_byte        20982657024 Bytes
size_human        19 GB
fs_type_hex        0xc
fs_type_name        W95 FAT32 (LBA)
grub_hd                (hd0,0)

name                D:
media_type        固定磁盘
disk_num        0
is_boot                1
driver_num        3
is_mbr                1
abs_offset        0x20982721536
fs_type_hex        0x7
fs_type_name        HPFS/NTFS
size_byte        41948895744 Bytes
size_human        39 GB

对应的磁盘分区表记录为:
disk_num        0
partition_num        2
grub_num        4
is_boot                0
abs_offset        0x20982721536
size_byte        41948895744 Bytes
size_human        39 GB
fs_type_hex        0x7
fs_type_name        HPFS/NTFS
grub_hd                (hd0,4)

name                E:
media_type        固定磁盘
disk_num        0
is_boot                1
driver_num        4
is_mbr                1
abs_offset        0x62931649536
fs_type_hex        0xb
fs_type_name        W95 FAT32
size_byte        20974431744 Bytes
size_human        19 GB

对应的磁盘分区表记录为:
disk_num        0
partition_num        3
grub_num        5
is_boot                0
abs_offset        0x62931649536
size_byte        20974431744 Bytes
size_human        19 GB
fs_type_hex        0xb
fs_type_name        W95 FAT32
grub_hd                (hd0,5)

name                F:
media_type        固定磁盘
disk_num        0
is_boot                1
driver_num        6
is_mbr                1
abs_offset        0x104880577536
fs_type_hex        0x7
fs_type_name        HPFS/NTFS
size_byte        53505414144 Bytes
size_human        49 GB

对应的磁盘分区表记录为:
disk_num        0
partition_num        5
grub_num        7
is_boot                0
abs_offset        0x104880577536
size_byte        53505414144 Bytes
size_human        49 GB
fs_type_hex        0x7
fs_type_name        HPFS/NTFS
grub_hd                (hd0,7)

name                G:
media_type        固定磁盘
disk_num        0
is_boot                1
driver_num        5
is_mbr                1
abs_offset        0x83906113536
fs_type_hex        0xb
fs_type_name        W95 FAT32
size_byte        20974431744 Bytes
size_human        19 GB

对应的磁盘分区表记录为:
disk_num        0
partition_num        4
grub_num        6
is_boot                0
abs_offset        0x83906113536
size_byte        20974431744 Bytes
size_human        19 GB
fs_type_hex        0xb
fs_type_name        W95 FAT32
grub_hd                (hd0,6)

-----------------------------------
输出 partition_table_info
disk_num        0
partition_num        1
grub_num        0
is_boot                1
abs_offset        0x32256
size_byte        20982657024 Bytes
size_human        19 GB
fs_type_hex        0xc
fs_type_name        W95 FAT32 (LBA)
grub_hd                (hd0,0)

disk_num        0
partition_num        2
grub_num        4
is_boot                0
abs_offset        0x20982721536
size_byte        41948895744 Bytes
size_human        39 GB
fs_type_hex        0x7
fs_type_name        HPFS/NTFS
grub_hd                (hd0,4)

disk_num        0
partition_num        3
grub_num        5
is_boot                0
abs_offset        0x62931649536
size_byte        20974431744 Bytes
size_human        19 GB
fs_type_hex        0xb
fs_type_name        W95 FAT32
grub_hd                (hd0,5)

disk_num        0
partition_num        4
grub_num        6
is_boot                0
abs_offset        0x83906113536
size_byte        20974431744 Bytes
size_human        19 GB
fs_type_hex        0xb
fs_type_name        W95 FAT32
grub_hd                (hd0,6)

disk_num        0
partition_num        5
grub_num        7
is_boot                0
abs_offset        0x104880577536
size_byte        53505414144 Bytes
size_human        49 GB
fs_type_hex        0x7
fs_type_name        HPFS/NTFS
grub_hd                (hd0,7)

disk_num        0
partition_num        6
grub_num        5
is_boot                0
abs_offset        0x158385991680
size_byte        1653281280 Bytes
size_human        1 GB
fs_type_hex        0x1c
fs_type_name        Hidden W95 FAT32 (LBA)
grub_hd                (hd0,5)

-----------------------------------
输出 driver_base_info
name                C:
media_type        固定磁盘
disk_num        0
is_boot                1
driver_num        1
is_mbr                1
abs_offset        0x32256
fs_type_hex        0xc
fs_type_name        W95 FAT32 (LBA)
size_byte        20982657024 Bytes
size_human        19 GB

name                D:
media_type        固定磁盘
disk_num        0
is_boot                1
driver_num        3
is_mbr                1
abs_offset        0x20982721536
fs_type_hex        0x7
fs_type_name        HPFS/NTFS
size_byte        41948895744 Bytes
size_human        39 GB

name                E:
media_type        固定磁盘
disk_num        0
is_boot                1
driver_num        4
is_mbr                1
abs_offset        0x62931649536
fs_type_hex        0xb
fs_type_name        W95 FAT32
size_byte        20974431744 Bytes
size_human        19 GB

name                F:
media_type        固定磁盘
disk_num        0
is_boot                1
driver_num        6
is_mbr                1
abs_offset        0x104880577536
fs_type_hex        0x7
fs_type_name        HPFS/NTFS
size_byte        53505414144 Bytes
size_human        49 GB

name                G:
media_type        固定磁盘
disk_num        0
is_boot                1
driver_num        5
is_mbr                1
abs_offset        0x83906113536
fs_type_hex        0xb
fs_type_name        W95 FAT32
size_byte        20974431744 Bytes
size_human        19 GB

name                J:
media_type        光驱
disk_num        0
is_boot                1
driver_num        0
is_mbr                1
abs_offset        0x0
fs_type_hex        0xb
fs_type_name        W95 FAT32
size_byte        2147483647 Bytes
size_human        1 GB

-----------------------------------
请按任意键继续. . .
页: [1] 2
查看完整版本: 帮忙测试一个磁盘信息获取软件