如何從C程序讀取驅動器的硬件信息? (即確定驅動器是SSD還是機械磁盤)如何使用C語言確定存儲類型(SSD驅動器或HHD。機械驅動器)
回答
您可以使用win32庫中的GetDriveType方法,並且可能可以區分這種方式,或者使用GetVolumeInformation來嘗試並確定它來自標籤。
'因爲我的應用程序可能在任何主機上運行,我不知道標籤會是什麼......所以我認爲猜標籤是合適的 – 2009-11-11 07:57:10
該功能不報告驅動器是否是SSD。 – 2011-11-18 09:32:49
您是否考慮過進行讀取/寫入測試以嘗試確定功能?
不,當我的應用程序安裝後,我會檢查所有的驅動器,如果有一個SSD,它運行另一種方式... – 2009-11-11 08:01:55
這個猜測是一個長鏡頭,但我找不到更好的東西。在設備的識別結構中,看看它是否支持聲學管理。舊的磁盤驅動器沒有,但也許是最現代的磁盤驅動器。顯然SSD不需要聲學管理,但我們希望他們會說他們不會,而不是假裝成磁盤驅動器。
這是行不通的。希捷已經放棄了現代傳統驅動器的聲學管理。 – ChrisInEdmonton 2010-01-09 16:37:59
SSD應該認定自己是非旋轉的。對於Linux操作系統,如舉例來說,你可以通過sysfs中的信息:
cat /sys/block/sda/queue/rotational
如果返回0,你有SSD ...
- 1. 如何確定驅動器的類型?
- 2. Linux C/C++或bash腳本:確定驅動器/設備類型
- 3. 如何使用跨平臺方法確定驅動器類型
- 4. 如何確定驅動器是否是外置驅動器
- 5. 如何確定特定驅動器的類型?
- 6. 確定驅動器是SAN
- 7. 如何使用C#映射驅動器?
- 8. 如何使用C++將ATA命令發送到HDD/SSD驅動器
- 9. SSD驅動器的TPC或其他數據庫基準測試
- 10. 如何確定文件是否位於可移動驅動器或本地驅動器
- 11. 下一個可用的驅動器號後C:驅動器
- 12. 所有類型的手機都有C:\驅動器嗎?
- 13. 如何使用C#驅動
- 14. Azure Blob存儲和Azure驅動器
- 15. 如何檢測USB閃存驅動器的盤符USB閃存驅動器的
- 16. 如何禁用特定的驅動器
- 17. 搜索C驅動器的所有存在的文件類型
- 18. 是否可以更改Azure臨時存儲驅動器的驅動器號?
- 19. C++ \ Win32的信息有關的所有驅動器:硬盤驅動器,USB驅動器,光盤驅動器,軟盤驅動器等
- 20. 使用一個驅動器鏡像網絡驅動器
- 21. 使用驅動器API訪問Google驅動器電子表格
- 22. 在容器中裝入本地SSD驅動器
- 23. GTMSessionfetcher谷歌驅動器UPLOAD谷歌驅動器的目標C?
- 24. 在C++中訪問UNC驅動器/遠程網絡驅動器
- 25. 區分數據卡和筆式驅動器或USB閃存驅動器
- 26. 如何從驅動器的全名獲得驅動器盤符
- 27. 驅動器號的接口類型
- 28. 確定驅動器中有光盤
- 29. 從MDItemRef確定本地驅動器
- 30. 使用閃存驅動器安裝python.exe
你所說的「性格」是什麼意思?驅動器號? – Tim 2009-11-11 02:33:06
@Tim:我想他的意思是,如果SSD有驅動器盤符'D'而普通HDD是驅動器盤符'E',他怎麼能通過「C」來檢查哪個驅動器正在使用哪個驅動器盤符。潘沒有打算。 :P – 2009-11-11 02:36:50
我認爲從Vista開始,它會始終使啓動驅動器C.我敢肯定,我有雙啓動和兩個Windows操作系統認爲他們的主要驅動器是C.請澄清問題! – 2009-11-11 02:41:35