我想从驱动器 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)
The filename, directory name, or volume label syntax is incorrect.
来自微软文档: image
但不起作用!
提前致谢。
最佳答案
打开卷时应使用的名称是 C:
并确保正确转义反斜杠。
HANDLE hd = CreateFile("\\\\.\\C:", GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, 0, OPEN_EXISTING, 0, NULL);
请注意,您可能会遇到错误 5(访问被拒绝),除非该 exe 以管理员权限运行。
关于c++ - 如何使用 CreateFile API 打开分区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36881006/