Delen via


Standaardvereisten voor stuurprogrammaroutine

Houd rekening met de volgende punten bij het ontwerpen van een kernelmodusstuurprogramma:

  • Elk stuurprogramma moet een DriverEntry- routine hebben, waarmee gegevensstructuren en resources voor het hele stuurprogramma worden geïnitialiseerd. De I/O-manager roept de DriverEntry- routine aan wanneer het stuurprogramma wordt geladen.

  • Elk stuurprogramma moet ten minste één verzendroutine hebben die I/O-aanvraagpakketten (IRP's) ontvangt en verwerkt. Elk stuurprogramma moet het ingangspunt van een verzendroutine in de DRIVER_OBJECT structuur plaatsen, voor elke primaire IRP-functiecode die het stuurprogramma kan ontvangen. Een stuurprogramma kan een afzonderlijke verzendroutine hebben voor elke primaire IRP-functiecode, of kan een of meer verzendroutines hebben die verschillende functiecodes verwerken.

  • Elk WDM-stuurprogramma moet een unload routine hebben. Het stuurprogramma moet het ingangspunt van de Unlaadroutine in het stuurprogramma-object plaatsen. De verantwoordelijkheden van een PnP-stuurprogramma's Unload routine zijn minimaal, maar een niet-PnP-stuurprogramma's unload routine is verantwoordelijk voor het vrijgeven van alle systeembronnen die het stuurprogramma gebruikt.

  • Elk WDM-stuurprogramma moet een AddDevice-routine hebben en het ingangspunt definiëren in de extensie van het stuurprogrammaobject. Een AddDevice-routine is verantwoordelijk voor het maken en initialiseren van apparaatobjecten voor elk PnP-apparaat dat door het stuurprogramma wordt bestuurd.

  • Een stuurprogramma kan een StartIo-routine hebben, die de I/O-manager aanroept om I/O-bewerkingen te starten voor IR's die het stuurprogramma in de wachtrij heeft geplaatst in een door het systeem geleverde IRP-wachtrij. Elk stuurprogramma dat geen StartIo-routine heeft, moet interne wachtrijen instellen en beheren voor de IRP's die het ontvangt, of elke IRP binnen de verzendroutines voltooien. Stuurprogramma's van een hoger niveau hebben mogelijk geen StartIo-routine als ze simpelweg IRP's doorgeven aan stuurprogramma's van een lager niveau, rechtstreeks vanuit hun verzendroutines.

  • Bepaalde minipoortstuurprogramma's zijn uitzonderingen op de voorgaande vereisten. Zie de apparaattypespecifieke documentatie in de Windows Driver Kit (WDK) voor informatie over de vereisten voor minipoortstuurprogramma's.

  • Of een stuurprogramma een ander soort standaardroutine heeft, is afhankelijk van de functionaliteit en hoe dat stuurprogramma in het systeem past (bijvoorbeeld of het werkt met door het systeem geleverde stuurprogramma's). Zie de specifieke documentatie voor het apparaattype in de WDK voor meer informatie.