Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Interrupts abhören (https://www.delphipraxis.net/31693-interrupts-abhoeren.html)

Borti 12. Okt 2004 17:53


Interrupts abhören
 
Hallo!
Gibt es unter Delphi irgendeine Möglichkeit Interrupts abzuhören?

Ich selbst hab mir schon eine etwas "harte" Variante als Notlösung überlegt:
Mann müsste einfach die Sprungadresse beim Interrupthandler auf eine procedure im eigenen Programm ändern. Über welche befehle kann ich in Delphi Zugriff auf sie Interruptvektoren kriegen?
Danke,
Borti

SleepyMaster 12. Okt 2004 18:09

Re: Interrupts abhören
 
Also soweit ich weiß ist das mit NT Kernel nur über Treiber möglich und die kann man nicht in Delphi schreiben.

Borti 12. Okt 2004 19:45

Re: Interrupts abhören
 
hab ich mir schon fast gedacht.
Einen Treiber um auf Register zuzugreifen hab ich (io.dll). daran sool's nicht scheitern.
ich müst doch eigentlich in die 4 register der interrupthandlers nur die Adresse meiner procedure schreiben. Jetzt ist halt die frage, wo ich die Interrruptvektoren herkrieg und vor allem die (reelle nicht virtuelle!)Adresse der procedure!
Gruß,
Borti

Mystic 12. Okt 2004 22:12

Re: Interrupts abhören
 
Ich hab das Gefühl (bin mir nicht sicher) das dieses Vorhaben Windows zum Abstürzen bringen würde. Windows hat doch sicher schon seine eigene Methode die auf den Interrupt reagiert? Wenn du das überschreibst...

Borti 13. Okt 2004 13:03

Re: Interrupts abhören
 
Zitat:

Ich hab das Gefühl (bin mir nicht sicher) das dieses Vorhaben Windows zum Abstürzen bringen würde.
:mrgreen: :mrgreen: :mrgreen:
Ich will die Methode ja nicht komplett überschreiben, ich würde sie nachdem meine abgearbeitet worden ist hintendran hängen, aber darum kümmer ich mich später.

Muetze1 13. Okt 2004 13:45

Re: Interrupts abhören
 
Moin!

Auch bei diesem Thema frage ich mich nach dem Sinn und Zweck des ganzen und finde keinen. Geht es nur um die Hardware INTs oder auch um die Software INTs ? Bei ersteren kann ich noch ein sechstel Sinn erkennen, aber bei den letzteren nicht. Ich habe fast die Vermutung, das du, Borti, noch DOS und den RM im Kopf hast und an die API Bereitstellung durch Software INTs denkst oder an die Bedienung von Software INT API Aufrufe von einer DOS Konsole denkst (was eh nicht soweit kommt, weil die DOS VM das handelt innerhalb des Prozess)...
Daher verstehe ich den Sinn für diese Sache nicht...

MfG
Muetze1

Borti 13. Okt 2004 16:54

Re: Interrupts abhören
 
also,
ich will erreichen, dass auf den Hardwareinterrupt vom LPT-Port (IRQ7) eine ganz bestimmte procedure in meinem Programm ausgeführt wird.
So weit ich weiß liegen die Interruptvektoren in den ersten 1024 Bytes des RAMs und ich will die dortige Sprungadresse zur ursprüngliche Interriptroutine ändern, dass sie auf die procedure in meinem Programm zeigt.
Gruß,
Borti

tommie-lie 13. Okt 2004 17:12

Re: Interrupts abhören
 
Zitat:

Zitat von Borti
So weit ich weiß liegen die Interruptvektoren in den ersten 1024 Bytes des RAMs

Die IVT kann man prinzipiell überall hinsetzen, du müsstest also wissen, wo das bei Windows der Fall ist.
Aber warum muss es unbedingt der Hardwareinterrupt vom Parallelport sein, würde ein Polling nicht auch reichen (oder kann man sich sogar durch Windows irgendwie benachrichtigen lassen? :gruebel:).

Muetze1 13. Okt 2004 19:16

Re: Interrupts abhören
 
Moin!

1. Das mit den ersten 1K gilt nur im Real Mode - im Protected Mode (Windows) ist das ganz anders
2. Wenn der LPT ein IRQ hat, dann bietet dir Windows bzw. die WinAPI auch die Möglichkeit dich darüber informieren zu lassen (wahrscheinlich Event)

MfG
Muetze1

Borti 14. Okt 2004 17:04

Re: Interrupts abhören
 
Mit dem pollen ist das so eine Sache. Das resultat (bzw. das problem) findet ihr hier: http://www.delphipraxis.net/internal...2617c0cb04fb81
Dieses benachrichtigen-lassen über die Win32API wär eigentlich eine sehr geschickte variante, aber wie mach ich das?
Gruß,
Borti


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz