代码改变世界
[登录 · 注册]
  • Windows下用C++删除磁盘分区信息
  • 做一个能对U盘重新分区的小工具,使用该方法删除U盘中原有的分区表。

     1 bool CCesDiskDll::DestroyDisk(unsigned char deviceNumber)
     2 {
     3     DWORD readed;
     4     char diskName[_DISK_PATH_LEN_];
     5     sprintf(diskName, "\\.\PhysicalDrive%d", deviceNumber);
     6     HANDLE hDisk = CreateFileA(diskName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE,
     7         nullptr, OPEN_EXISTING, 0, nullptr);
     8     if (hDisk == INVALID_HANDLE_VALUE)
     9     {
    10         CErrorHandle::ErrorMessageBox(TEXT("磁盘读取异常"));
    11         return false;
    12     }
    13     if (!DeviceIoControl(hDisk, IOCTL_DISK_DELETE_DRIVE_LAYOUT, nullptr, 0, nullptr, 0, &readed,
    14         nullptr))
    15     {
    16         CErrorHandle::ErrorMessageBox(TEXT("磁盘分区表删除异常"));
    17         CloseHandle(hDisk);
    18         return false;
    19     }
    20     if (!DeviceIoControl(hDisk, IOCTL_DISK_UPDATE_PROPERTIES, nullptr, 0, nullptr, 0, &readed,
    21         nullptr))
    22     {
    23         CErrorHandle::ErrorMessageBox(TEXT("磁盘分区表刷新异常"));
    24         CloseHandle(hDisk);
    25         return false;
    26     }
    27     CloseHandle(hDisk);
    28     return true;
    29 }
  • 【推广】 阿里云小站-上云优惠聚集地(新老客户同享)更有每天限时秒杀!
    【推广】 云服务器低至0.95折 1核2G ECS云服务器8.1元/月
    【推广】 阿里云老用户升级四重礼遇享6.5折限时折扣!
  • 原文:https://www.cnblogs.com/lzhu/p/4931416.html
Copyright 2008-2020 晋ICP备12007731号-1