Skip to content

ElektroStudios/S.M.A.R.T.-API-for-.NET-developers-SMART-drive-info

Logo

S.M.A.R.T. API for .NET developers

A class library written in VB.NET to easily retrieve drive health and diagnostic data.


Forks  Contributors  Followers  Watchers Sponsors  Stars

AppVeyor CI SonarCloud Quality Gate Latest Release Language Platform License
Repo size Total Downloads Last commit Pull Requests Open IssuesClosed Issues Maintenance

Made in Spain


👋 Introduction

S.M.A.R.T. API is a class library written in VB.NET (targeting .NET Framework 4.8) that demonstrates how to query and retrieve S.M.A.R.T. diagnostic data from disk drives using managed code. The library source code is fully reusable and scalable, allowing you to integrate it directly into your own .NET projects.

The repository also includes a Windows desktop application that serves as a practical implementation demo, displaying your drives' health status and diagnostic attributes in a clean user interface.

💡 Motivation

This library was built to simplify the process of executing WMI queries and parsing raw byte structures into a structured, reusable API.

Instead of writing boilerplate infrastructure code from scratch, this solution maps out the necessary WMI structures and provides pre-built properties to handle the parsing of vendor-specific RAW values into multiple bit representations (32, 48, or 64-bit), giving developers a solid starting point for hardware monitoring.

⚡ The Real Question
How many lines of boilerplate code do you really want to write just to extract basic hardware diagnostics in .NET?.

🖼️ Screenshots

Screenshot 1 Screenshot 2

📝 Requirements

  • Microsoft Windows OS.

🚀 Getting Started

  1. Navigate to the Releases page.
  2. Download the latest .zip archive and extract its contents to your preferred directory.
  3. Run the executable file to launch the demo application, or grab the included source-code files to use in your integrated development environment.

‼️ Limitations

This tool does not pretend to be a professional S.M.A.R.T. tool software.

Because the representation of the vendor-specific RAW values always needs further investigation, this tool has what we could consider a limitation in the meaning of being incapable to determine when a vendor-specific RAW value should be represented as a 64, 48 or 32 bit integer, because that is work of the developer itself. This is normal and understandable, because as I mentioned, this application does not pretend to be a professional tool.

For the reason being said, my implementation tries to facilitate this task by providing properties to show the RAW value in different representations.

Anyway, almost all the vendor-specific RAW values are 32-bit integer values, which is the default kind of value represented in the user-interface of this tool.

🔄 Change Log

Explore the complete list of changes, bug fixes, and improvements across different releases by clicking here.

💪 Contributing

Your contribution is highly appreciated!. If you have any ideas, suggestions, or encounter issues, feel free to open an issue by clicking here.

Your input helps make this Work better for everyone. Thank you for your support! 🚀

💰 Beyond Contribution

This work is distributed for educational purposes and without any profit motive. However, if you find value in my efforts and wish to support and motivate my ongoing work, you may consider contributing financially through the following options:

Platform How to Support
Become my sponsor on GitHub
Contribute any amount you prefer and unlock rewards!
Support me on Ko-fi
Buy me a coffee!
Become a Patron on Patreon
Support my open-source work regularly!
Make a PayPal Donation
Donate any amount you like via PayPal!
Purchase my software at Envato's CodeCanyon
Discover my desktop tools and DevCase Class Library for .NET, an extensive API suite.

Your support means the world to me! Thank you for considering it! 🤗💗

🏆 Credits

@TheLegendaryCopyCoder for illustrating how to retrieve all the related S.M.A.R.T. data through WMI:

⚠️ Disclaimer

This software and its associated repository are provided strictly on an "as is" basis, without warranties of any kind, whether express or implied. This includes, but is not limited to, any implied warranties of merchantability, reliability, or fitness for a particular purpose.

The authors and copyright holders assume no liability for any direct, indirect, incidental, or consequential damages—including data loss or system errors—arising from the use, misuse, or inability to use this software. You are solely responsible for determining the appropriateness of using this tool and assume all associated risks.

Furthermore, this project operates entirely independently. The utilization of any third-party libraries or components within this software does not imply any affiliation with, or endorsement or approval by, their respective original authors.

This project is licensed under the Apache License, Version 2.0. See the License file for details.