Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die folgende Abbildung veranschaulicht die Geräteobjekte, die die Tastatur- und Mausgeräte darstellen, die zuvor in der Abbildung zur Veranschaulichung von Tastatur- und Maushardwarekonfigurationen dargestellt sind. Die Tastatur- und Maustreiber, die in der Abbildung zur Veranschaulichung der Tastatur- und Maustreiberebenen dargestellt sind, erstellen diese Geräteobjekte, indem sie eine E/A-Unterstützungsroutine (IoCreateDevice) aufrufen.
Für Tastatur- und Mausgeräte erstellen sowohl der jeweilige Port- als auch der Klassentreiber Geräteobjekte. Der Porttreiber erstellt ein physisches Geräteobjekt (PDO), das den physischen Port darstellt. Jeder Klassentreiber erstellt ein eigenes funktionales Geräteobjekt (Functional Device Object, FDO), um das Tastatur- oder Mausgerät als Ziel für E/A-Anforderungen darzustellen.
Jeder Klassentreiber ruft eine E/A-Unterstützungsroutine auf, um einen Zeiger auf das Geräteobjekt des nächstniedrigen Treibers zu erhalten, sodass sich der Klassentreiber über diesem Treiber verketten kann, d. h. der Porttreiber. Anschließend kann der Klassentreiber E/A-Anforderungen an den Porttreiber für die Ziel-PDO senden, die sein physisches Gerät darstellt.
Ein optionaler Filtertreiber, der der Konfiguration hinzugefügt wurde, würde ein Filtergeräteobjekt (Filter DO) erstellen. Wie der Klassentreiber verkettet sich ein optionaler Filtertreiber mit dem nächstniedrigen Treiber im Gerätestapel und sendet E/A-Anforderungen für den Ziel-PDO an den nächstniedrigen Treiber.
Wie zuvor in der Abbildung Tastatur- und Maustreiberebenen gezeigt, ist jeder Porttreiber ein Bustreiber (unterste Ebene), sodass jeder Porttreiber eines Geräts, das Interrupts generiert, Interruptobjekte einrichten und eine ISR registrieren muss.
Ein Dual-Device-Porttreiber wie der i8042-Treiber für die Tastatur und den in der Abbildung Tastatur- und Maushardwarekonfigurationen gezeigten Hilfsgerätecontroller muss gerätespezifische Interruptobjekte einrichten, wenn jedes Gerät einen anderen Interruptvektor verwendet. Beim Schreiben eines solchen Treibers können Sie entweder separate ISRs für jedes Gerät implementieren oder eine einzelne ISR für beide Geräte implementieren.