如何使用 CreateFile API 打开分区

how to open partition with CreateFile API?

本文关键字:分区 API 何使用 CreateFile      更新时间:2023-10-16

我想从驱动器C:/获取句柄。我可以通过以下方式从磁盘获取句柄:

HANDLE hd = CreateFile("\\.\PhysicalDrive0", GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, NULL);

如何访问磁盘分区?

使用此代码时:

HANDLE hd = CreateFile("\.C", GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, NULL);

并使用 GetLastError() 错误代码为 123。

ERROR_INVALID_NAME

123 (0x7B)

文件名、目录名或卷标语法不正确。

从Microsoft文档:图像

但不工作!

提前谢谢。

打开卷时应该使用的名称是C:,并确保正确转义反斜杠。

HANDLE hd = CreateFile("\\.\C:", GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, NULL);

请注意,您可能会收到错误 5(拒绝访问),除非 exe 以管理员权限运行。