Freigeben über


Entwurfsrichtlinien für Startgeräte

  • Der PnP-Manager schlägt die Erstellung von Anforderungen für das Gerät fehl, bis die IRP_MN_START_DEVICE IRP abgeschlossen ist, was angibt, dass alle Treiber für das Gerät ihre Startvorgänge ausgeführt haben.

  • Da eine DispatchPnP-Routine im Kontext eines Systemthreads bei IRQL PASSIVE_LEVEL ausgeführt wird, kann jeder mit ExAllocatePoolWithTag für die ausschließliche Verwendung während der Initialisierung zugewiesener Arbeitsspeicher aus einem ausgelagerten Pool stammen, solange der Treiber das Gerät, das eine Systemseitendatei enthält, nicht steuert. Eine solche Speicherzuordnung muss mit ExFreePool freigegeben werden, bevor die DispatchPnP-Routine das Steuerelement zurückgibt.

  • Der ISR eines WDM-Gerätetreibers sollte in der Lage sein, zu bestimmen, ob er mit einem falschen Interrupt aufgerufen wurde, auch während des Gerätestarts. Wenn der Aufruf von IoConnectInterrupt im Codepfad zurückgegeben wird, der IRP_MN_START_DEVICE verarbeitet, kann der ISR sofort aufgerufen werden, wenn Interrupts auf dem Gerät aktiviert sind.