Registriert seit: 13. Feb 2006
Ort: Bad Honnef
765 Beiträge
Turbo Delphi für Win32
|
Re: Festplatte ausschalten
15. Jul 2006, 17:49
Soweit ich weiß, geht das noch viel einfacher.
Delphi-Quellcode:
var hIntr: Longword (* Interruptnummer *)
(* fürs ausschalten: *)
IOUnregisterInterrupt(hIntr);
IODisconnectInterrupt(hIntr);
(* fürs einschalten: *)
IoConnectInterrupt(
OUT PKINTERRUPT *InterruptObject,
IN PKSERVICE_ROUTINE ServiceRoutine,
IN PVOID ServiceContext,
IN PKSPIN_LOCK SpinLock OPTIONAL,
IN ULONG Vector,
IN KIRQL Irql,
IN KIRQL SynchronizeIrql,
IN KINTERRUPT_MODE InterruptMode,
IN BOOLEAN ShareVector,
IN KAFFINITY ProcessorEnableMask,
IN BOOLEAN FloatingSave
);
IORegisterInterrupt(hIntr);
(* aus der MSDNLibary, da ich nicht alle Parameter auswendig weiß. Mehr dazu weiter unten. *)
Oder noch einfacher:
Delphi-Quellcode:
(* fürs ausschalten: *)
IoDeleteDevice(
IN PDEVICE_OBJECT DeviceObject
);
IoDeleteSymbolicLink(
IN PUNICODE_STRING SymbolicLinkName
);
(* fürs einschalten: *)
IoCreateDevice(
IN PDRIVER_OBJECT DriverObject,
IN ULONG DeviceExtensionSize,
IN PUNICODE_STRING DeviceName OPTIONAL,
IN DEVICE_TYPE DeviceType,
IN ULONG DeviceCharacteristics,
IN BOOLEAN Exclusive,
OUT PDEVICE_OBJECT *DeviceObject
);
IoCreateSymbolicLink(
IN PUNICODE_STRING SymbolicLinkName,
IN PUNICODE_STRING DeviceName
);
(* aus der MSDNLibary, da ich nicht alle Parameter auswendig weiß. Mehr dazu weiter unten. *)
MSDN-Links:
IODeleteDevice
IOCreateDevice
IODeleteSymbolicLink
IOCreateSymbolicLink
Die restlichenLinks poste ich mal nicht, die sind dann auch leicht in der Navi links zu finden.
ACHTUNG!!! Bei allen muss noch eine wdm.h oder ntddk.h eingebunden werden, unter Delphi ist es nicht drin (hab ich jedenfals nicht gefunden).
Tomorrow will be cancelled due to lack of interest.
|
|
Zitat
|