Windows下用C++删除磁盘分区信息

做一个能对U盘重新分区的小工具,使用该方法删除U盘中原有的分区表。

 bool CCesDiskDll::DestroyDisk(unsigned char deviceNumber)
{
DWORD readed;
char diskName[_DISK_PATH_LEN_];
sprintf(diskName, "\\\\.\\PhysicalDrive%d", deviceNumber);
HANDLE hDisk = CreateFileA(diskName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE,
nullptr, OPEN_EXISTING, , nullptr);
if (hDisk == INVALID_HANDLE_VALUE)
{
CErrorHandle::ErrorMessageBox(TEXT("磁盘读取异常"));
return false;
}
if (!DeviceIoControl(hDisk, IOCTL_DISK_DELETE_DRIVE_LAYOUT, nullptr, , nullptr, , &readed,
nullptr))
{
CErrorHandle::ErrorMessageBox(TEXT("磁盘分区表删除异常"));
CloseHandle(hDisk);
return false;
}
if (!DeviceIoControl(hDisk, IOCTL_DISK_UPDATE_PROPERTIES, nullptr, , nullptr, , &readed,
nullptr))
{
CErrorHandle::ErrorMessageBox(TEXT("磁盘分区表刷新异常"));
CloseHandle(hDisk);
return false;
}
CloseHandle(hDisk);
return true;
}
上一篇:MySQL中SQL语句常见优化策略


下一篇:【Intellij IDEA】eclipse项目导入