Запрос WMI возвращает температуру жесткого диска как 0, как это решить?

У меня возникли проблемы с получением правильной температуры определенного жесткого диска в моем приложении с помощью запроса WMI, каким-то образом один из двух моих жестких дисков возвращает 0 в качестве температуры, а другой возвращает обычную температуру, например 34 градуса по Цельсию.

Это мой метод:

public static void GetTemps()
    {
        const byte TEMPERATURE_ATTRIBUTE = 194; 
        try
        {
            int counter = 1;
            ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSStorageDriver_ATAPISmartData");
            foreach (ManagementObject queryObj in searcher.Get())
            {
                byte[] arrVendorSpecific = (byte[])queryObj["VendorSpecific"];
                System.Windows.Forms.MessageBox.Show("DRIVE: " + (counter + ("=" + arrVendorSpecific[TEMPERATURE_ATTRIBUTE + 5])));
                counter++;
            }
        }
        catch (ManagementException err)
        {
            System.Windows.Forms.MessageBox.Show(("An error has occurred: " + err.Message));
        }

Возможно, самая странная часть заключается в том, что этот код работал не так давно, хотя время от времени он по-прежнему показывал 0.


person user1676874    schedule 13.10.2016    source источник
comment
Может быть, температура равна нулю.   -  person rory.ap    schedule 13.10.2016
comment
Ну, я также использовал другие инструменты, такие как Open Hardware Monitor, и они сообщают о фактических правдоподобных темпах.   -  person user1676874    schedule 13.10.2016
comment
для чего + 5 в arrVendorSpecific?   -  person Jacob Krall    schedule 14.10.2016
comment
Возможно, вы смотрите на неправильное значение, возможно, делаете что-то, что может привести к нагреву вашего жесткого диска, например, запускаете windirstat и перебираете каждое значение байта в arrVendorSpecific, и пока вы это делаете, проверяйте, какие значения изменяются в вашем массиве байтов. . Я пробовал, но мой SSD, кажется, постоянно сообщает только о 50C на этом ноутбуке.   -  person KSib    schedule 14.10.2016
comment