如何解决如何使用IOCTL_DISK_GROW_PARTITION?
| 我正在尝试将分区缩小到最后使用的LCN。有人使用过此控制代码吗? 我在以下代码中每次都收到系统错误代码87:HANDLE hDiskHandle = NULL;
DISK_GROW_PARTITION dgp;
DWORD dwBytesReturned = 0;
dgp.PartitionNumber = 2;
dgp.BytesToGrow.QuadPart = -1;
hDiskHandle = CreateFile(_T(\"\\\\.\\PhysicalDrive0\"),GENERIC_ALL,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_ALWAYS,NULL);
if (hDiskHandle == INVALID_HANDLE_VALUE) {
int err = GetLastError();
printf(\"Unable to get handle on Volume,error : %d\",err);
}
if (!DeviceIoControl(
hDiskHandle,IOCTL_DISK_GROW_PARTITION,&dgp,sizeof dgp,&dwBytesReturned,NULL
)) {
int err = GetLastError();
printf(\"DeviceIoControl Failed,err);;
}
我的硬盘驱动器有3个分区(C,D,E)。 E:驱动器实际上是空的。
解决方法
[OP的解决方案转换为下面的答案]
事实证明,我的程序很好。从更改访问权限后开始工作
GENERIC_ALL
至
GENERIC_READ | GENERIC_WRITE
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。