0

WMIを使用して、ローカルコンピューター上のディスクのパフォーマンス情報を取得しようとしています。Win32_PerfFormattedData_PerfDisk_LogicalDisk(http://msdn.microsoft.com/en-us/library/aa394261(v=vs.85).aspx)のドキュメントによると、情報をクエリして取得できるはずです。値。

ただし、コードを実行すると、プロパティの値ごとに「0」が表示されます。

var selectQuery = new SelectQuery("Select * from Win32_PerfFormattedData_PerfDisk_LogicalDisk");
var searcher = new ManagementObjectSearcher(selectQuery);

foreach (ManagementObject disk in searcher.Get())
{
    foreach (PropertyData property in disk.Properties)
    {
        var propertyValue = property.Value; // 0 value.
    }
}

Win32_PerfRawData_PerfDisk_LogicalDiskにもクエリを実行しましたが、実際の生の値を取得しています。もちろん、生データではなく、フォーマットされたデータが必要です。WMIの使用に関しては、生データをフォーマットされたデータに変換するためのドキュメントが不足しているようです。

値ごとに0を取得する理由はありますか?

4

1 に答える 1

1

これをテストしたばかりの実際の例を次に示します

WMI Performance Class Countersを使用できます。この例は、PerfDisk_LogicalDisk のポーリングです。

ManagementObjectSearcher mos = new ManagementObjectSearcher("select * from Win32_PerfFormattedData_PerfDisk_LogicalDisk");
foreach (ManagementObject service in mos.Get())
{
    foreach (PropertyData propData in service.Properties)
    {
        Console.WriteLine("{0} {1}", propData.Name, propData.Value);
    }
}
于 2012-12-16T20:17:12.423 に答える