首页
社区
课程
招聘
[求助]请问我如何获得磁盘上的分区信息?
发表于: 2014-8-7 08:51 3579

[求助]请问我如何获得磁盘上的分区信息?

2014-8-7 08:51
3579
请问我如何获得磁盘上的分区信息?已知:\\\\.\\PHYSICALDRIVE2
        HANDLE Device2 = CreateFile(
                "\\\\.\\PHYSICALDRIVE2",
                GENERIC_READ | GENERIC_WRITE,
                FILE_SHARE_READ | FILE_SHARE_WRITE,
                NULL,
                OPEN_EXISTING,
                FILE_FLAG_NO_BUFFERING,
                NULL
                );

        DWORD returned = 0;
        PARTITION_INFORMATION pi = {0};
        if(!DeviceIoControl(Device2,
                IOCTL_DISK_GET_PARTITION_INFO,
                NULL,
                0,
                &pi,
                sizeof(pi),
                &returned,
                NULL))
        {
                printf("failure3\n");

        }else
        {
                printf("ok pi.PartitionNumber = %d pi.PartitionLength.QuadPart = %x pi.PartitionLength.LowPart = %x pi.PartitionLength.u.LowPart = %x\n",pi.PartitionNumber,pi.PartitionLength.QuadPart,pi.PartitionLength.LowPart,pi.PartitionLength.u.LowPart);
        }

以上得到的是磁盘信息,我想获得此磁盘上的分区信息,如在WinObj中显示的 \Device\HarddiskVolume10

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 4668
活跃值: (1713)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
GetDriveType
GetLogicalDrives
2014-8-7 12:41
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
3
QueryDosDevice
http://msdn.microsoft.com/en-us/library/cc542456(v=vs.85).aspx

	char szDrv[MAX_PATH] = "C:";
	char szBuffer[1024]={0};
	DWORD ret = QueryDosDevice(szDrv,szBuffer,1024);
	printf("DevicePath = %s\n",szBuffer);	
2014-8-7 12:49
0
雪    币: 206
活跃值: (300)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我想根据 卷的\\?\Volume{4c1b02c1-d990-11dc-99ae-806e6f6e6963}\的得到
\Device\HarddiskVolume2的信息,谢谢
2014-8-7 15:31
0
雪    币: 46
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这个应该是想通过符号链接名,得到对应的设备对象名称。
2014-8-7 19:18
0
游客
登录 | 注册 方可回帖
返回
//