Not
Å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.
I det här avsnittet beskrivs User-Mode Driver Framework (UMDF) och information om skillnaderna mellan UMDF-versionerna 1 och 2. Den innehåller också arkitekturinformation på hög nivå om UMDF. Använd det här avsnittet för att avgöra om en UMDF-drivrutin är rätt val för dina behov och för att avgöra vilken UMDF-version som ska användas.
Windows Driver Frameworks (WDF) innehåller UMDF, ett ramverk för att skapa drivrutiner i användarläge. Precis som Kernel-Mode Driver Framework (KMDF) tillhandahåller UMDF ett abstraktionslager från WDM, som hanterar mycket av plug and play-funktionerna (PnP) och energisparfunktioner och låter drivrutinen välja specifika funktioner och händelsehantering.
I Windows 8.1 och senare finns det två huvudversioner av UMDF, version 1 och 2. UMDF version 1.11 (en punkt elva) är den senaste versionen av UMDF version 1 och är den slutliga versionen före tillkomsten av UMDF 2. För en tabell som visar fullständig versionsinformation och operativsystemsrelevans, se UMDF-versionshistorik.
Om du skriver en drivrutin med UMDF version 1 måste du använda COM-programmeringsmodellen för att skriva C++-kod. Umdf version 2 baseras på samma konceptuella drivrutinsprogrammeringsmodell som KMDF, men UMDF 1 implementerar modellen med olika komponenter, enhetsdrivrutinsgränssnitt (DDI:er) och datastrukturer. Alla nya UMDF-drivrutiner ska skrivas med UMDF 2. Inga nya funktioner läggs till i UMDF 1 och det finns begränsat stöd för UMDF 1 på nyare versioner av Windows 10 och Windows 11.
Från och med UMDF version 2 kan du däremot skriva en UMDF-drivrutin på programmeringsspråket C som anropar många av de metoder som är tillgängliga för KMDF-drivrutiner. Alla gränssnitt som delas mellan UMDF version 2 och KMDF har samma namn, parametrar och strukturdefinitioner. Om drivrutinen endast använder delade funktioner eller använder villkorsstyrda makron runt anrop som endast stöds i ett ramverk, kan du skriva en enda drivrutin som du kan kompilera med antingen UMDF eller KMDF. För mer information, se Så här genererar du en UMDF-drivrutin från en KMDF-drivrutin.
Även om det finns en betydande gemensamhet mellan UMDF 2 och KMDF finns det fortfarande en liten mängd funktioner som endast är tillgängliga i det ena eller det andra ramverket. Mer information finns i Jämförelse av UMDF 2-funktionalitet med KMDF. För en lista över alla UMDF 2- och KMDF-återanrop och metoder och vilka ramverk de gäller för, se Sammanfattning av WDF-återanrop och metoder. I ett fåtal fall gäller en strukturmedlem eller parameter för en metod endast för det ena eller det andra ramverket. Dokumentationen beskriver dessa skillnader på motsvarande referenssidor.