【发布时间】:2015-03-13 18:46:48
【问题描述】:
我有管理员权限,并且可以通过以下方式获取有效句柄并最终读取整个硬盘驱动器:
IntPtr handle = CreateFile(@"\\.\PHYSICALDRIVE1", GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
当我尝试打开该驱动器的目录时,我也可以获得一个有效的句柄:
IntPtr handle = CreateFile(@"\\.\Z:\\", GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
但是当我尝试简单地打开该驱动器的分区时,我无法获得有效的句柄:
IntPtr handle = CreateFile(@"\\.\Z:", GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);
GetLastWin32Error 返回拒绝访问 (5)。
当然,如果我使驱动器脱机,我会得到“The system cannot find the file specified”。
我已经尝试了所有我能想到的不同分区、不同选项等的方法,但都没有。
【问题讨论】:
-
嘿,你找到打开驱动器分区的方法了吗?
标签: c++ winapi createfile