Frage

Ich möchte wissen, welche Prozesse Gerät Interrupts fädelt. Was passiert, wenn es eine Unterbrechung, wenn ein Benutzer-Modus-Thread ausgeführt wird? Auch haben andere Benutzer-Threads eine Chance zu laufen, wenn das System ein Interrupt verarbeitet?

empfehlen Sie mir bitte einige Referenzmaterial beschrieben wird, wie Interrupts durch Fenster behandelt werden.

War es hilfreich?

Lösung

Der Entfeuchter schaltet sich (in der Regel) durch was auch immer Thread verarbeitet hatte die CPU, die den Interrupt nahm, sondern in einem Ring 0 und an einem anderen Schutzniveau. Dies schränkt einige der Aktionen können ein Interrupt-Handler nehmen, weil die meiste Zeit wird der aktuelle Thread nicht auf das Gewinde in Beziehung gesetzt werden, die für das Ereignis wartet passieren, dass die Unterbrechung anzeigt.

Der Kernel selbst ist Closed-Source, und nur durch seine interne API dokumentiert. Die API-Gerätetreiber Autoren ausgesetzt ist, und in den Treiber-Entwicklungs-Kits beschrieben.

Einige Ressourcen für den Anfang:

  • Jede Ausgabe von Microsoft Windows Internals von Solomon und Russinovich. Der Strom scheint die 4. Auflage zu sein, aber auch eine alte Ausgabe helfen.

  • Der Windows DDK, jetzt umbenannt in die WDK . Seine Dokumentation ist zur Verfügung zu Online . Achten Sie darauf, die Kernel Mode Design Guide ...

  • Sysinternals Werkzeuge und Artikel hat zur Sonde an und erklärt das Verhalten des Kernels. Dies war früher eine unabhängige Seite sein, bis Microsoft müde von Mark Russinovich bekam schien mehr darüber zu wissen, wie der Kernel arbeitete als sie. ; -)

Hinweis

diesen Quellcode für viele der gemeinsamen Gerätetreiber werden in der DDK in den Proben enthalten. Obwohl die Produktionsversionen an Sicherheit grenzender Wahrscheinlichkeit unterschiedlich sind, kann das Beispiel Treiber liest auch einige Fragen beantworten, wenn Sie sich einen Fahrer nicht implementieren mögen.

Andere Tipps

Wie jedes anderes Betriebssystem, verarbeitet Windows-Interrupts in Kernel-Modus, mit einer erhöhten Unterbrechungsprioritätsstufe (ich glaube, sie nennen sie IRPL sind, aber ich weiß nicht, was die „R“ steht für). Jeder Benutzer-Thread oder niedrigere Ebene Kernel Thread auf demselben Computer ausgeführt wird unterbrochen, während die Interrupt-Anforderung verarbeitet wird, und wird wieder aufgenommen, wenn die ineterrupt Verarbeitung abgeschlossen ist.

Um mehr zu erfahren über Gerät auf Windows-Interrupts müssen Sie Gerätetreiber Entwicklung studieren. Dies ist ein Nischenthema, ich glaube nicht, dass Sie viele nützliche Ressourcen im Web finden können, und Sie können für ein Buch oder eine Ausbildung suchen.

Wie auch immer, Windows-Handle unterbricht mit Interrupt Request Level (IRQLs) und Latente Verfahren aufruft. Ein Interrupt wird im Kernelmodus gehandhabt, der als User-Modus in höherer Priorität ausgeführt wird. Eine richtige Interrupt-Handler muss sehr schnell reagieren zu können. Es führt nur die absolut notwendigen Operationen und registriert einen latenten Prozeduraufruf in der Zukunft zu führen. Dies wird geschehen, wenn das System in einer Interrupt Request-Ebene ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top