Enhetligt arbete med alla enheter på en persondator i Windows, liksom vissa andra funktioner i operativsystemet, tillhandahålls av en uppsättning drivrutiner. För att kunna skriva drivrutiner måste du ha en god förståelse för programmering, principerna för kärnan och olika Windows-delsystem.
Nödvändig
Windows Driver Kit
Instruktioner
Steg 1
Ladda ner Windows Driver Development Kit (DDK) distribution från microsoft.com (tillgänglig för MSDN-abonnenter) och installera den på din dator. Detta paket innehåller alla nödvändiga verktyg för att utveckla och bygga drivrutiner (kompilator, länkare, huvudfiler, bibliotek) samt omfattande dokumentation.
Steg 2
Studera i detalj all tillgänglig dokumentation om skrivardrivrutiner för Windows. Använd referensinformationen från DDK och relaterat MSDN-ämne (msdn.microsoft.com). Du måste förstå alla aspekter av Windows Driver Model (WDM) och förstå de grundläggande arkitektoniska begreppen. Du måste tydligt förstå skillnaderna mellan drivrutiner för användarläge och kärnläge, enhetsdrivrutiner och filsystemdrivrutiner. Du måste känna till funktionerna i olika klasser av drivrutiner, deras typer (bussdrivrutiner, filter, funktionella drivrutiner) och undertyper (displaydrivrutiner, modem, nätverksenheter, parallella och seriella portar, lagringsenheter). Var särskilt uppmärksam på principerna för paketdriven I / O med återanvändbara IRP: er, minneshantering, undantagshantering och korrekt tillämpning av synkroniseringsobjekt.
Steg 3
Definiera tydligt funktionaliteten hos den drivrutin som utvecklas. Basera på detta, bestäm vilken typ och klass den tillhör.
Steg 4
Välj ett programmeringsspråk. Traditionellt implementeras drivrutiner för kärnläge i C. Användarlägesdrivrutiner utvecklas vanligtvis i C ++. Det finns flera undantag från dessa regler. Till exempel skrivs klientminidrivare för ljud- och videoströmmar, WDM-ljuddrivrutiner för miniportar i kärnläge, WIA-drivrutiner och ibland visningsdrivrutiner i C ++.
Steg 5
Skapa ett projekt som implementerar drivrutinen. Utforska DDK-katalogen med exempel. Hitta rätt förardemoprojekt. Om du inte hittar ett lämpligt exempel skapar du filerna själv som innehåller den nödvändiga källkoden och bygger skriptfiler. Till exempel, när du utvecklar en kärnlägesdrivrutin, måste du implementera DriverEntry-funktionen, som innehåller initialiseringskoden samt vissa standardrutiner (som AddDevice, StartIo, etc.).
Steg 6
Implementera drivrutinsfunktionaliteten. Lägg till kod till funktionerna som skapades i föregående steg. Lägg till logik för att hantera I / O-förfrågningar etc.