Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Microsoft Windows innehåller en mängd olika drivrutinsmodeller som du kan använda för att skriva drivrutiner. Strategin för att välja den bästa drivrutinsmodellen beror på vilken typ av drivrutin du planerar att skriva. Här är alternativen:
- Drivrutin för enhetsfunktion
- Drivrutin för enhetsfilter
- Programvarudrivrutin
- Filterdrivrutin för filsystem
- Filsystemdrivrutin
En diskussion om skillnaderna mellan olika typer av drivrutiner finns i Vad är en drivrutin? och Enhetsnoder och enhetsstackar. I följande avsnitt beskrivs hur du väljer en modell för varje typ av drivrutin.
Välja en drivrutinsmodell för en enhetsfunktionsdrivrutin
När du utformar en maskinvaruenhet är en av de första sakerna att tänka på om du behöver skriva en funktionsdrivrutin. Ställ följande frågor:
Kan du undvika att skriva en drivrutin helt och hållet? Vilken är den bästa drivrutinsmodellen att använda om du måste skriva en funktionsdrivrutin? Du kan besvara dessa frågor genom att avgöra var enheten passar i listan över tekniker som beskrivs i Enhets- och drivrutinstekniker. Se dokumentationen för den specifika tekniken för att avgöra om du behöver skriva en funktionsdrivrutin och för att lära dig mer om vilka drivrutinsmodeller som är tillgängliga för din enhet.
Vissa av de enskilda teknikerna har minidriver-modeller. I en minidrivermodell består enhetsdrivrutinen av två delar: en som hanterar allmänna uppgifter och en som hanterar enhetsspecifika uppgifter. Vanligtvis skriver Microsoft den allmänna delen och enhetstillverkaren skriver den enhetsspecifika delen. Enhetsspecifika delar har en mängd olika namn, varav de flesta delar prefixet mini. Här är några av namnen som används i minidrivermodeller:
- Visa miniportdrivrutin
- Miniportdrivrutin för ljud
- Batteri miniklass drivrutin
- Bluetooth-protokolldrivrutin
- HID-minidrivrutin
- WIA-minidrivrutin
- NDIS-miniportdrivrutin
- Miniportdrivrutin för lagring
- Minidrivrutin för direktuppspelning
En översikt över modeller för minidrivers finns i Minidrivers och pardrivare.
Inte alla tekniker som anges i Enhets- och drivrutinstekniker har en dedikerad minidrivermodell. Dokumentationen för en viss teknik kan råda dig att använda Kernel-Mode Driver Framework (KMDF); dokumentationen för en annan teknik kan råda dig att använda User-Mode Driver Framework (UMDF). Det viktigaste är att du börjar med att studera dokumentationen för din specifika enhetsteknik. Om enhetens teknik har en minidrivermodell måste du använda minidrivermodellen. Annars följer du råden i den teknikspecifika dokumentationen om du vill använda UMDF, KMDF eller Windows Driver Model (WDM).
Välja en drivrutinsmodell för en enhetsfilterdrivrutin
Ofta deltar flera drivrutiner i en enda I/O-begäran (som att läsa data från en enhet). Drivrutinerna är skiktade i en stack och det konventionella sättet att visualisera stacken är med den första drivrutinen längst upp och den sista drivrutinen längst ned. Stacken har en funktionsdrivrutin och kan också ha filterdrivrutiner. En diskussion om funktionsdrivrutiner och filterdrivrutiner finns i Vad är en drivrutin? och Enhetsnoder och enhetsstackar.
Om du förbereder dig för att skriva en filterdrivrutin för en enhet ska du ta reda på var enheten passar i listan över tekniker som beskrivs i Enhets- och drivrutinstekniker. Kontrollera om dokumentationen för din specifika enhetsteknik har någon vägledning om hur du väljer en filterdrivrutinsmodell. Om dokumentationen för din enhetsteknik inte ger den här vägledningen bör du först överväga att använda UMDF som drivrutinsmodell. Om filterdrivrutinen behöver åtkomst till datastrukturer som inte är tillgängliga via UMDF kan du överväga att använda KMDF som drivrutinsmodell. I det sällsynta fallet att drivrutinen behöver åtkomst till datastrukturer som inte är tillgängliga via KMDF använder du WDM som drivrutinsmodell.
Välja en drivrutinsmodell för en programvarudrivrutin
En drivrutin som inte är associerad med en enhet kallas för en programvarudrivrutin. En diskussion om programvarudrivrutiner finns i Vad är en drivrutin?. Programvarudrivrutiner är användbara eftersom de kan köras i kernelläge, vilket ger dem åtkomst till skyddade operativsystemdata. Information om processorlägen finns i Användarläge och kernelläge.
För en programvarudrivrutin är dina två alternativ KMDF och den äldre Windows NT-drivrutinsmodellen. Med både KMDF och den äldre Windows NT-modellen kan du skriva din drivrutin utan att behöva bekymra dig om Plug and Play (PnP) och energisparfunktioner. Du kan i stället koncentrera dig på chaufförens primära uppgifter. Med KMDF behöver du inte bry dig om PnP och kraft eftersom ramverket hanterar PnP och kraft åt dig. Med den äldre Windows NT-modellen behöver du inte bry dig om PnP och ström eftersom kernellägestjänster fungerar i en miljö som är helt oberoende av PnP och energisparfunktioner.
Vår rekommendation är att du använder KMDF, särskilt om du redan är bekant med det. Om du vill att drivrutinen ska vara helt oberoende av PnP och energisparfunktioner använder du den äldre Windows NT-modellen. Om du behöver skriva en programvarudrivrutin som är medveten om energiövergångar eller PnP-händelser kan du inte använda den äldre Windows NT-modellen. du måste använda KMDF.
Obs: I det mycket sällsynta fallet att du behöver skriva en programvarudrivrutin som är medveten om PnP- eller energihändelser, och drivrutinen behöver åtkomst till data som inte är tillgängliga via KMDF, måste du använda WDM.
Välja en drivrutinsmodell för en filsystemdrivrutin
Hjälp med att välja en modell för en filsystemdrivrutin finns i Filsystemdrivrutinsexempel. Observera att filsystemdrivrutiner kan vara komplexa och kan kräva kunskaper om avancerade begrepp för drivrutinsutveckling.
Välja en drivrutinsmodell för en filsystemfilterdrivrutin
Mer information om hur du väljer en modell för en filsystemfilterdrivrutin finns i Minifilterdrivrutiner för filsystem och Filterdrivrutiner för filsystem.
Välja en drivrutinsmodell för en minifilterdrivrutin för filsystemet
Hjälp med att välja en modell för en minifilterdrivrutin för filsystem finns i minifilterdrivrutiner för filsystem.