Windows下用C++删除磁盘分区信息
2024-09-30 01:04:57
做一个能对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;
}
最新文章
- apk反编译
- Canvas: Out of system resources
- Unity3D Layout 快捷键
- Ohlàlà
- 查看BADI有哪些实现
- php监听客户端连接状态
- OpenCV源码阅读(1)---matx.h---mat类与vec类
- modsecookie
- netcore webapi帮助文档设置
- 如何在jenkins的maven项目中,用mvn命令行指定findbugs的黑名单规则文件
- 《k8s-1.13版本源码分析》-调度器初始化
- SpringBoot报错:java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String;
- Hyper-V 替换 vmwp
- SQL Server ltrim(rtrim()) 去不掉空格
- rabbitmq集群安装与配置(故障恢复)
- wordpress中常用的一些php代码
- Go 文件操作(创建、打开、读、写)
- Python3 Selenium WebDriver网页的前进、后退、刷新、最大化、获取窗口位置、设置窗口大小、获取页面title、获取网页源码、获取Url等基本操作
- Socket入门之前的知识点
- C语言 · 最大最小公倍数