我打电话CreateFile()
打开\\.\PhysicalDrive0
,然后我读取了 BitLocker 加密卷的扇区,一切正常。这样,我创建了使用 BitLocker 加密的卷的物理(加密)扇区的备份副本。
然后,我再次调用CreateFile()
并再次打开\\.\PhysicalDrive0
,然后我尝试写入所述 BitLocker 加密卷的扇区(我正在尝试恢复备份),但它不起作用。
如果卷已解锁,我会收到IOException
HResult = 0x80370000 和文本“此驱动器已被 BitLocker 驱动器加密锁定。您必须从控制面板解锁此驱动器。”
从 UI 解锁卷后,异常更改为 HResult = 0x80070013 和文本“媒体已写保护”。
问题: 我必须做什么才能被允许写入 BitLocker 加密卷的物理扇区?我提到我确实以管理员身份运行代码,并且我确实锁定了卷,但无济于事。相同的代码适用于非加密卷。
到目前为止,我只有 2 个选项,而且都不是很好:
如果我使整个驱动器脱机(调用
DeviceIOControl()
),写入 BitLocker 卷的物理扇区可以正常工作,但我不能这样做,因为驱动器还包含其他需要联机的卷。如果(在恢复之前)我将卷格式化为非加密卷,它也可以工作,从而删除 BitLocker 加密。执行此操作后,写入物理扇区可以正常工作,但 Windows 不会将新写入的扇区检测为 BitLocker 卷。但是,在移除并重新插入驱动器后(或者如果驱动器已修复,则在重新启动后)它会将该卷检测为 BitLocker 加密卷。
非常感谢。