void ResetHDState(bool bEnable)
{
GUID guid = DiskClassGuid;
HDEVINFO hDevinfo = SetupDiGetClassDevs(&guid, NULL, NULL, /*DIGCF_PRESENT*/DIGCF_DEVICEINTERFACE);
SP_DEVINFO_DATA spDevInfo = {0};
spDevInfo.cbSize = sizeof(SP_DEVINFO_DATA);
SP_DEVICE_INTERFACE_DATA didata = {0};
didata.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
for(int i = 0; SetupDiEnumDeviceInterfaces(hDevinfo, /*&spDevInfo*/NULL, &guid, i, &didata); i++)
{
SP_DEVICE_INTERFACE_DETAIL_DATA* spDId = NULL;
DWORD dwt;
wchar_t szBig[500] = {0};
spDId = (PSP_DEVICE_INTERFACE_DETAIL_DATA)szBig;
spDId->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);
if(SetupDiGetDeviceInterfaceDetail(hDevinfo, &didata, spDId, 500, &dwt, NULL))
{
停用及启用磁盘设备、修改盘符代码
最新推荐文章于 2012-07-15 19:13:05 发布
这篇博客介绍了如何在Windows系统中通过代码操作磁盘设备,包括停用和启用设备以及修改驱动器字母。代码使用了SetupDiGetClassDevs等API来枚举和管理磁盘接口,通过CreateFile打开设备并调用SetupDiSetClassInstallParams进行设备的启用或停用。此外,还展示了如何更改磁盘的盘符,通过FindFirstVolume和FindNextVolume获取卷信息,并使用SetVolumeMountPoint进行盘符的重新分配。
摘要由CSDN通过智能技术生成