| |
|
Objectives
The objective of the project was to implement the mechanism allowing to get
information about the IDE devices under MS Windows 9x/ME platforms.
|
|
Results
The project resulted in the VXD driver that could read as much data on the IDE
devices as possible by accessing them directly. Also, a set of classes was
designed to interact with the driver. First of all, the driver had to get the
device model, its manufacturer, and the serial number.
|
| |
|
Technical peculiarities
To get the information about the IDE devices, the IDE controller was accessed
directly (i.e. the "Identify drive" command was executed). To work with the
controller directly, two tasks had to be solved: to provide direct access to
the controller registers, and send commands directly to the controller without
affecting other
|
|
applications working with the IDE controller. The first task was solved in a
standard way - the controller was queried from the VXD driver whose code
executed on Ring-0, which allowed to work with devices directly. To solve the
second task, it was necessary to monopolize the CPU, while the IDE device is
being accessed.
|