Entwurfsrichtlinien für PnP-Treiber

Plug & Play bietet Folgendes:

  • Automatische und dynamische Erkennung installierter Hardware

  • Hardwareressourcenzuweisung (und Neuzuweisung)

  • Laden entsprechender Treiber

  • Eine Schnittstelle für Treiber für die Interaktion mit dem PnP-System

  • Mechanismen für Treiber und Anwendungen zum Lernen von Änderungen in der Hardwareumgebung

Um PnP zu unterstützen, muss ein Treiber die folgenden Richtlinien befolgen:

  • Sie muss eine DispatchPnP-Routine enthalten.

    Diese Dispatchroutine muss IRP_MJ_PNP Anforderungen und zugehörigen Nebenfunktionscodes verarbeiten. Weitere Informationen finden Sie unter DispatchPnP-Routinen.

  • Es darf nicht nach Hardware suchen.

    Der PnP-Manager ist für die Bestimmung des Vorhandenseins von Hardwaregeräten verantwortlich. Wenn der PnP-Manager ein Gerät erkennt, benachrichtigt er den Treiber, indem er seine AddDevice-Routine aufruft . Hardware kann erkannt werden, wenn das System gestartet wird oder wenn ein Benutzer ein Gerät zu einem ausgeführten System hinzufügt oder daraus entfernt.

  • Hardwareressourcen dürfen nicht zugewiesen werden.

    Ein PnP-Treiber muss dem PnP-Manager Listen mit Ressourcen bereitstellen, die ein Gerät potenziell verwenden kann. Der PnP-Manager ist für das Zuweisen von Ressourcen zu jedem Gerät und die Benachrichtigung des Treibers über die Zuweisungen jedes Geräts verantwortlich, wenn er eine IRP_MN_START_DEVICE Anforderung sendet. Der Treiber muss daher in der Lage sein, mit verschiedenen Konfigurationen von Hardwareressourcen zu arbeiten.

Einige Treiber sind von den Details des PnP und der Energieverwaltung durch vom System bereitgestellte Port- oder Klassentreiber isoliert. Ein SCSI-Porttreiber isoliert z. B. einen SCSI-Miniporttreiber vor vielen Details der Stromversorgungs- und PnP-Systeme, sodass ein SCSI-Miniporttreiber die Stromversorgung und PnP-IRPs nicht direkt verarbeiten muss. Details zur erforderlichen PnP-Unterstützung finden Sie in der treiberspezifischen Dokumentation.