moel@324: /*
moel@324:  
moel@344:   This Source Code Form is subject to the terms of the Mozilla Public
moel@344:   License, v. 2.0. If a copy of the MPL was not distributed with this
moel@344:   file, You can obtain one at http://mozilla.org/MPL/2.0/.
moel@324:  
moel@344:   Copyright (C) 2011-2012 Michael Möller <mmoeller@openhardwaremonitor.org>
moel@344: 	
moel@324: */
moel@324: 
moel@324: using System;
moel@324: using System.Collections.Generic;
moel@324: 
moel@324: 
moel@324: namespace OpenHardwareMonitor.Hardware.HDD {
moel@324: 
moel@324:   public interface ISmart {
moel@324: 
moel@324:     IntPtr OpenDrive(int driveNumber);
moel@324: 
moel@324:     bool EnableSmart(IntPtr handle, int driveNumber);
moel@324: 
moel@324:     DriveAttributeValue[] ReadSmartData(IntPtr handle, int driveNumber);
moel@324: 
moel@324:     DriveThresholdValue[] ReadSmartThresholds(IntPtr handle, int driveNumber);
moel@324: 
moel@325:     bool ReadNameAndFirmwareRevision(IntPtr handle, int driveNumber,
moel@325:       out string name, out string firmwareRevision); 
moel@324: 
moel@324:     void CloseHandle(IntPtr handle);
moel@324: 
moel@324:     IntPtr InvalidHandle { get; }
moel@324:   }
moel@324: }