2009-07-05 99 views
1

我四處尋找一個工具來監視Windows 2003 Server下我的軟件RAID的狀態,但找不到合適的東西(即不是grossly oversizedneedlessly complicated)。所以我決定自己做,這沒什麼特別難的。如何檢索有關磁盤卷的信息?

那麼如何以編程方式檢索卷的狀態?自從我用Windows API撥弄我已經有一段時間了,我找不到任何使用Google的蝙蝠。我知道我可以使用diskpart /s並解析它的輸出,但這會很快變得混亂(儘管它有一些優點)。

任何指向正確方向的指針都將受到高度讚賞:)

回答

1

Win32 API是(顯然是唯一)的方式去這裏,Virtual Disk Service是魔術字。

Here在C++中是一個很好的例子,它會幫助您開始。起初,不同的COM接口數量對我來說是相當混亂的,但How Virtual Disk Service Works文章是很好有助於獲得大局。

其實很簡單。儘管從來沒有做過任何嚴肅的C++編碼,甚至從未接觸過COM,但我仍然能夠在幾個小時內獲得基本功能。

0

您是否檢查過WMI?

你可以看看here的演示。

+0

WMI不返回RAID狀態(請參閱http://www.anchor.com.au/hosting/dedicated/monitoring_windows_software_raid) – n3rd 2009-07-05 18:28:07

+0

謝謝,不知道。 – 2009-07-05 20:39:46

0

您可以嘗試監視事件日誌中的RAID事件。

+0

是的,這是另一種選擇(請參閱上面的鏈接之一)。不過,我寧願直接查詢狀態。 – n3rd 2009-07-05 19:18:13

0

我不知道RAID的東西會不會使問題複雜化,但我之前使用過System.IO.DriveInfo.GetDrives(),這對我的需求很好。