如何以编程方式确定硬盘驱动器是否正在旋转(Windows 7或更高版本)?
我试过GetDevicePowerState()但是对于我所知道的驱动器(对于内部驱动器和USB驱动器)来说,它总是返回TRUE (总是1,而不是另一个非零值)。 在GetDevicePowerState()返回TRUE ,立即发出dir d:在控制台中,我听到驱动器旋转起来,并且在生成目录列表之前有几秒的延迟。
我的代码需要检查驱动器上的目录是否存在。 如果驱动器当前停转,检查可以推迟或跳过。 我想避免检查一个离心驱动器有两个原因:1)检查目前是同步完成的,我不希望用户不得不等待驱动器旋转起来2)我不想导致驱动器起飞,只是为了使我的支票(希望这是显而易见的为什么不)。
有没有办法做到这一点?
如何使用C ++列出连接到Linux机器上的硬盘?
FileStream在应用程序冷启动上非常慢
Linux RHEL – 查找磁盘types
获取所有硬盘和分区的序列号
如何在Linux中使用C ++获取硬件信息
根据评论更新:
有人build议, GetDevicePowerState与物理设备名称一起工作,但我不能让它返回1以外的任何东西(再次,我已validation的驱动器不旋转)。 以下是我正在使用的代码。 如果GetDevicePowerState确实已知可以使用USB驱动器,那么CreateFile参数可能有问题吗?
for (int DriveNumber = 0; DriveNumber < 128; ++DriveNumber) { TCHAR Drive[128]; _stprintf (Drive,_T("\\.\PHYSICALDRIVE%d"),DriveNumber); HANDLE hDevice = CreateFile(Drive,FILE_SHARE_READ|FILE_SHARE_WRITE,OPEN_EXISTING,0); if (hDevice != INVALID_HANDLE_VALUE) { BOOL DeviceIsOn = FALSE; if (GetDevicePowerState(hDevice,&DeviceIsOn) != 0) { _tprintf(_T("Physical Drive %d is Powered %s (DeviceIsOn=%d)n"),DriveNumber,DeviceIsOn?_T("On"):_T("Off"),(int)DeviceIsOn); } CloseHandle(hDevice); } }
使用DDrecursion地写入特定的文件
在没有root权限的情况下在Linux上获得硬盘序列号
使用Python获取硬盘温度
内存问题与imageMagick?
在Linux中检索硬盘信息,而不使用额外的工具
正如我想说的,不要告诉我有关错误的信息 – 告诉我你要完成的工作。
我的代码需要检查驱动器上的目录是否存在
好的,如果这是最终目标,Windows提供了一个名为FindFirstChangeNotification的API。 您可以使用Change Notification API来启动一个线程,并在文件或目录更改时进行监视。
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365261(v=vs.85).aspx
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。