Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Een stuurprogramma is een softwareonderdeel waarmee het besturingssysteem en een apparaat kunnen communiceren. Wanneer een app bijvoorbeeld gegevens van een apparaat moet lezen, wordt een functie aangeroepen die door het besturingssysteem is geïmplementeerd. Het besturingssysteem roept vervolgens een functie aan die door het stuurprogramma is geïmplementeerd. Het stuurprogramma, meestal ontwikkeld door de fabrikant van het apparaat, weet hoe de hardware van het apparaat kan communiceren om de gegevens op te halen. Wanneer het stuurprogramma de gegevens ophaalt, wordt deze teruggezet naar het besturingssysteem, waarna het weer aan de app wordt geretourneerd.
De definitie uitbreiden
Deze uitleg vereenvoudigt het concept van stuurprogramma's. Hier volgen nog enkele punten om rekening mee te houden:
De fabrikant van het apparaat ontwikkelt het stuurprogramma niet altijd. Als een apparaat een gepubliceerde hardwarestandaard volgt, kan Microsoft het stuurprogramma schrijven, zodat de apparaatontwerper er geen hoeft op te geven.
Niet alle stuurprogramma's communiceren rechtstreeks met een apparaat. Vaak nemen verschillende gelaagde stuurprogramma's in een stuurprogrammastack deel aan een I/O-aanvraag.
De conventionele manier om de stapel te visualiseren is met de eerste deelnemer bovenaan en de laatste deelnemer onderaan, zoals in dit diagram wordt weergegeven. Sommige drivers in de stack wijzigen de aanvraag van het ene formaat naar het andere. Deze stuurprogramma's communiceren niet rechtstreeks met het apparaat. In plaats daarvan wijzigen ze de aanvraag en geven ze deze door aan stuurprogramma's die lager in de stack zijn.
Functiestuurprogramma: het stuurprogramma dat rechtstreeks met het apparaat communiceert, wordt het functiestuurprogrammagenoemd.
filterstuurprogramma: stuurprogramma's die hulpverwerking uitvoeren, worden filterstuurprogramma'sgenoemd.
Zie Stuurprogrammastacks voor meer informatie.
Sommige filterstuurprogramma's observeren en registreren informatie over I/O-aanvragen, maar nemen geen deel aan deze aanvragen. Sommige filterstuurprogramma's fungeren bijvoorbeeld als verificatoren om ervoor te zorgen dat de andere stuurprogramma's in de stack de I/O-aanvraag correct verwerken.
Om de definitie te verfijnen, is een stuurprogramma een softwareonderdeel dat de communicatie tussen het besturingssysteem en een apparaat bekijkt of eraan deelneemt.
Softwarestuurprogramma's
Deze uitgebreide definitie is nauwkeuriger, maar is nog steeds onvolledig. Sommige stuurprogramma's zijn helemaal niet gekoppeld aan een hardwareapparaat.
Als u een hulpprogramma moet schrijven dat toegang heeft tot de kerngegevensstructuren van het besturingssysteem, kunt u het hulpprogramma splitsen in twee onderdelen. Het eerste onderdeel wordt uitgevoerd in de gebruikersmodus en geeft de gebruikersinterface weer. Het tweede onderdeel wordt uitgevoerd in de kernelmodus en heeft toegang tot de kerngegevens van het besturingssysteem. Het onderdeel dat wordt uitgevoerd in de gebruikersmodus, wordt een toepassing genoemd. Het onderdeel dat in de kernelmodus wordt uitgevoerd, wordt een softwarestuurprogramma genoemd. Een softwarestuurprogramma is niet gekoppeld aan een hardwareapparaat.
Dit diagram illustreert een gebruikersmodustoepassing die communiceert met een kernelmodussoftwarestuurprogramma.
Softwarestuurprogramma's worden altijd uitgevoerd in de kernelmodus. Ze worden voornamelijk geschreven voor toegang tot beveiligde gegevens die alleen beschikbaar zijn in de kernelmodus. Niet alle apparaatstuurprogramma's hebben toegang nodig tot gegevens en resources in de kernelmodus, dus sommige apparaatstuurprogramma's worden uitgevoerd in de gebruikersmodus.
Zie de gebruikersmodus en kernelmodus voor meer informatie over processormodi.
Buschauffeurs
Een ander type chauffeur is de buschauffeur. Om busstuurprogramma's te begrijpen, moet u inzicht krijgen in apparaatknooppunten en de apparaatstructuur.
Zie Apparaatknooppunten en apparaatstacks voor informatie over apparaatstructuren, apparaatknooppunten en busstuurprogramma's.
Meer informatie over functiestuurprogramma's
De uitleg tot nu toe vereenvoudigt te veel het functiestuurprogramma. De uitleg tot nu toe geeft aan dat het functiestuurprogramma het stuurprogramma is dat rechtstreeks met het apparaat communiceert. Deze instructie geldt voor een apparaat dat rechtstreeks verbinding maakt met de PCI-bus (Peripheral Component Interconnect). Het functiestuurprogramma voor een PCI-apparaat verkrijgt adressen die zijn toegewezen aan poort- en geheugenbronnen op het apparaat. Het functiestuurprogramma communiceert rechtstreeks met het apparaat door naar deze adressen te schrijven.
In veel gevallen maakt een apparaat niet rechtstreeks verbinding met de PCI-bus. In plaats daarvan maakt het apparaat verbinding met een hostbusadapter die is verbonden met de PCI-bus. Een USB-broodrooster maakt bijvoorbeeld verbinding met een hostbusadapter, een USB-hostcontroller genoemd. Die controller is verbonden met de PCI-bus. De USB-broodrooster heeft een functiestuurprogramma en de USB-hostcontroller heeft eveneens een functiestuurprogramma.
De functiestuurprogramma voor de broodrooster communiceert indirect met het broodrooster door een verzoek naar het functiestuurprogramma voor de USB-hostcontroller te sturen. Het functiestuurprogramma voor de USB-hostcontroller communiceert vervolgens rechtstreeks met de USB-hostcontrollerhardware, die communiceert met het broodrooster.