快速插入和拔出USB时,GetVolumeInformationW卡住了

问题描述 投票:0回答:1

我试图确定文件系统是否可以使用microsofts minispy示例连接到它之前是否可访问。为了简短起见,我提供了一个设备名称路径,例如\Device\HarddiskVolume4\。我想我可以使用FilterGetDosName来获得一致的根路径,然后使用GetVolumeInformationW来确定卷是否实际上是附加的;

BOOL result = GetVolumeInformationW(rootPath, NULL, 0, NULL, NULL, NULL, NULL, 0);

然而,我的问题是,如果我快速拨入和拔出USB。它在这里被卡住了,因为它试图获取数据但是卷被断开了。在安装微型过滤器之前,如何安全地确定卷是否已连接?

filesystems wdk
1个回答
0
投票

有一个名为:GetLogicalDriveStringsW的函数,用于获取设备的路径名,而不是使用OP中所述的非持久性devicename。在一些逻辑分别处理每个驱动器并确定差异,以便您可以连接到新设备,您使用GetVolumeInformationW(letter.c_str(), NULL, NULL, NULL, NULL, NULL, NULL, NULL);

我在撰写这篇文章时遇到的其他错误与此问题无关。要点是:使用GetLogicalDriveStringsWGetVolumeInformationW

© www.soinside.com 2019 - 2024. All rights reserved.