Erforderliche Zuständigkeiten von DriverEntry
Die erforderlichen, geordneten Zuständigkeiten einer DriverEntry-Routine sind wie folgt:
Stellen Sie Einstiegspunkte für die Standardroutinen des Fahrers bereit.
Der Treiber speichert Einstiegspunkte für viele seiner Standardroutinen im Treiberobjekt oder der Treibererweiterung. Zu diesen Einstiegspunkten gehören diejenigen für die AddDevice-Routine des Fahrers, Dispatchroutinen, StartIo-Routine und Unload-Routine . Beispielsweise würde ein Treiber die Einstiegspunkte für seine AddDevice-, DispatchPnP- und DispatchPower-Routinen mit Anweisungen wie den folgenden festlegen (Xxx ist ein Platzhalter für ein vom Anbieter bereitgestelltes Präfix, das den Treiber identifiziert):
: DriverObject->DriverExtension->AddDevice = XxxAddDevice; DriverObject->MajorFunction[IRP_MJ_PNP] = XxxDispatchPnp; DriverObject->MajorFunction[IRP_MJ_POWER] = XxxDispatchPower; :
Zusätzliche Standardroutinen, z. B. ISRs oder IoCompletion-Routinen , werden durch aufrufen von Systemunterstützungsroutinen angegeben. Weitere Informationen finden Sie in den Beschreibungen einzelner Standardtreiberroutinen.
Erstellen und/oder initialisieren Sie verschiedene treiberweite Objekte, Typen oder Ressourcen, die der Treiber verwendet. Beachten Sie, dass die meisten Standardroutinen Objekte auf Gerätebasis verwenden, sodass Treiber solche Objekte in ihren AddDevice-Routinen oder nach Dem Empfang einer IRP_MN_START_DEVICE-Anforderung einrichten sollten.
Wenn der Treiber über einen dedizierten Gerätethread verfügt oder auf kerneldefinierte Dispatcherobjekte wartet, initialisiert die DriverEntry-Routine möglicherweise Kernelverteilerobjekte. (Je nachdem, wie der Treiber die Objekte verwendet, kann er diese Aufgabe stattdessen in seiner AddDevice-Routine oder nach Dem Empfang einer IRP_MN_START_DEVICE-Anforderung ausführen.)
Geben Sie den zugeordneten und nicht mehr benötigten Arbeitsspeicher frei.
Gibt NTSTATUS zurück, der angibt, ob der Treiber erfolgreich geladen wurde und Anforderungen vom PnP-Manager akzeptieren und verarbeiten kann, um seine Geräte zu konfigurieren, hinzuzufügen und zu starten. (Siehe DriverEntry Return Values.)