Uniform werken met alle apparaten van een pc in Windows, evenals enkele andere functies van het besturingssysteem worden geleverd door een set stuurprogramma's. Om stuurprogramma's te kunnen schrijven, moet u een goed begrip hebben van programmeren, de principes van de kernel en verschillende Windows-subsystemen.
Noodzakelijk
Ontwikkelingskit voor Windows-stuurprogramma's
instructies:
Stap 1
Download de distributie van de Windows Driver Development Kit (DDK) van microsoft.com (beschikbaar voor MSDN-abonnees) en installeer deze op uw computer. Dit pakket bevat alle benodigde tools voor het ontwikkelen en bouwen van stuurprogramma's (compiler, linker, headerbestanden, bibliotheken), evenals uitgebreide documentatie.
Stap 2
Bestudeer in detail alle beschikbare documentatie over het schrijven van stuurprogramma's voor Windows. Gebruik de referentie-informatie van de DDK en het verwante MSDN-onderwerp (msdn.microsoft.com). U moet alle aspecten van het Windows Driver Model (WDM) volledig begrijpen en de basisarchitectuurconcepten begrijpen. U moet de verschillen tussen gebruikersmodus- en kernelmodusstuurprogramma's, apparaatstuurprogramma's en bestandssysteemstuurprogramma's duidelijk begrijpen. U moet de kenmerken kennen van verschillende klassen stuurprogramma's, hun typen (busstuurprogramma's, filters, functionele stuurprogramma's) en subtypes (beeldschermstuurprogramma's, modems, netwerkapparaten, parallelle en seriële poorten, opslagapparaten). Besteed vooral aandacht aan de principes van Packet-Driven I/O met herbruikbare IRP's, geheugenbeheer, exception handling en het correct toepassen van synchronisatieobjecten.
Stap 3
Definieer duidelijk de functionaliteit van de driver die wordt ontwikkeld. Bepaal op basis hiervan tot welk type en klasse het behoort.
Stap 4
Selecteer een programmeertaal. Traditioneel worden stuurprogramma's voor de kernelmodus geïmplementeerd in C. Drivers voor de gebruikersmodus worden meestal ontwikkeld in C++. Er zijn verschillende uitzonderingen op deze regels. Client-ministuurprogramma's voor audio- en videostreams, WDM-audiostuurprogramma's voor minipoorten in de kernelmodus, WIA-stuurprogramma's en soms beeldschermstuurprogramma's zijn bijvoorbeeld geschreven in C++.
Stap 5
Maak een project dat de driver-stub implementeert. Verken de DDK-directory met voorbeelden. Vind het juiste driver demo-project. Als je geen geschikt voorbeeld kunt vinden, maak dan zelf de bestanden aan die de benodigde broncode bevatten en bouw scriptbestanden. Als u bijvoorbeeld een stuurprogramma voor de kernelmodus ontwikkelt, moet u de functie DriverEntry implementeren, die zowel de initialisatiecode als enkele standaardroutines bevat (zoals AddDevice, StartIo, enz.).
Stap 6
Implementeer de driverfunctionaliteit. Voeg code toe aan de functies die in de vorige stap zijn gemaakt. Voeg logica toe om I/O-verzoeken af te handelen, enz.