Ich glaube, einen Weg gefunden zu haben, wie man auch mit DELPHI eine HDD-READ/WRITE-Anzeige realisieren kann.
Stichwörter:
Device Input and Output Control (IOCTL) = DeviceIoControl
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
The DeviceIoControl function provides a device input and output control (IOCTL) interface through which an application can communicate directly with a device driver. The DeviceIoControl function is a general-purpose interface that can send control codes to a variety of devices. Each control code represents an operation for the driver to perform. For example, a control code can ask a device driver to return information about the corresponding device, or direct the driver to carry out an action on the device, such as formatting a disk.
-
Gefunden hier:
{ ref JwaWinIoctl.pas }
unit winconst_ioctl;
Delphi-Quellcode:
// This structure defines the disk logging record. When disk logging
// is enabled, one of these is written to an internal buffer for each
// disk request.
//
PDISK_RECORD = ^DISK_RECORD;
_DISK_RECORD = record
ByteOffset: LARGE_INTEGER;
StartTime: LARGE_INTEGER;
EndTime: LARGE_INTEGER;
VirtualAddress: Pointer; //PVOID;
NumberOfBytes: DWORD;
DeviceNumber: BYTE;
ReadRequest: ByteBool;
end;
DISK_RECORD = _DISK_RECORD;
TDiskRecord = DISK_RECORD;
PDiskRecord = PDISK_RECORD;
//
// The following structure is exchanged on an IOCTL_DISK_LOG request.
// Not all fields are valid with each function type.
//
PDISK_LOGGING = ^DISK_LOGGING;
_DISK_LOGGING = record
Function_: BYTE;
BufferAddress: PVOID;
BufferSize: DWORD;
end;
DISK_LOGGING = _DISK_LOGGING;
TDiskLogging = DISK_LOGGING;
PDiskLogging = PDISK_LOGGING;
//
// Disk logging functions
//
// Start disk logging. Only the Function and BufferSize fields are valid.
//
const
DISK_LOGGING_START = 0;
//
// Stop disk logging. Only the Function field is valid.
//
DISK_LOGGING_STOP = 1;