Hardware/HDD/ISmart.cs
author moel.mich
Sun, 23 Sep 2012 18:37:43 +0000
changeset 380 573f1fff48b2
parent 344 3145aadca3d2
child 381 ed5d5fc482ed
permissions -rw-r--r--
Fixed Issue 387. The new implementation does not try to start a ring 0 driver that already exists, but could not be opened. It tries to delete the driver and install it new. The driver is now stored temporarily in the application folder. The driver is not correctly removed on system shutdown.
moel@324
     1
/*
moel@324
     2
 
moel@344
     3
  This Source Code Form is subject to the terms of the Mozilla Public
moel@344
     4
  License, v. 2.0. If a copy of the MPL was not distributed with this
moel@344
     5
  file, You can obtain one at http://mozilla.org/MPL/2.0/.
moel@324
     6
 
moel@344
     7
  Copyright (C) 2011-2012 Michael Möller <mmoeller@openhardwaremonitor.org>
moel@344
     8
	
moel@324
     9
*/
moel@324
    10
moel@324
    11
using System;
moel@324
    12
using System.Collections.Generic;
moel@324
    13
moel@324
    14
moel@324
    15
namespace OpenHardwareMonitor.Hardware.HDD {
moel@324
    16
moel@324
    17
  public interface ISmart {
moel@324
    18
moel@324
    19
    IntPtr OpenDrive(int driveNumber);
moel@324
    20
moel@324
    21
    bool EnableSmart(IntPtr handle, int driveNumber);
moel@324
    22
moel@324
    23
    DriveAttributeValue[] ReadSmartData(IntPtr handle, int driveNumber);
moel@324
    24
moel@324
    25
    DriveThresholdValue[] ReadSmartThresholds(IntPtr handle, int driveNumber);
moel@324
    26
moel@325
    27
    bool ReadNameAndFirmwareRevision(IntPtr handle, int driveNumber,
moel@325
    28
      out string name, out string firmwareRevision); 
moel@324
    29
moel@324
    30
    void CloseHandle(IntPtr handle);
moel@324
    31
moel@324
    32
    IntPtr InvalidHandle { get; }
moel@369
    33
moel@369
    34
    string[] GetLogicalDrives(int driveIndex);
moel@324
    35
  }
moel@324
    36
}