|Define the "information interface" for a disk
Devive (Device Information Block)
|Select the relevant informations
that the system might want to consult about each device, like (but not restricted
to) the vendor infos, the disk/partition capacity, the "real nature" of the
device (floppy, hard disk, partition, virtual image (ramdisk), etc.), and
- most important - the unique identifier (provided by kds "serial
number" in final version).
Create a function that will scan hardware for
all IDE devices and create an device information block for each of them.
These d.i.b. will then be registered in kds://system.devices.disk.* as a
|Access to devices informations
|As the KDS_OBJECT framework is not
yet fully defined, the only point that is relevant here is the definition
of a recognizer structure for devices information blocks and its registration
as the recognizer for kds://system.devices.disk? The recognizer is
required to provide a "toString" function (creating the human-readable name
from the DIB).
For more informations about recognizers, see
struct kdsRecognizer doc.
|For some selected devices, install a server
that will implement kds://services.sys.device.block interface
(a read() and a write() function). Such functions are not synchronous calls
(i.e. the caller should not have to wait for the driver to complete access
before the method call returns), so a success and a failure
callback should be provided by the caller through a yet-to-be-defined