User Mode Driver Framework (UMDF) | |
---|---|
Sorts | Utvecklingsplattform för drivrutiner |
Utvecklaren | Microsoft |
Skrivet i | C , C++ |
Operativ system | Microsoft Windows |
Första upplagan | 12 oktober 2004 |
senaste versionen | 2,27 (24 mars 2019 ) |
Licens | MIT-licens |
Hemsida | docs.microsoft.com/en-us/windows-hardware/drivers/wdf/overview-of-the-umdf |
User -Mode Driver Framework ( UMDF ) är ett användarlägesutvecklingsramverk för drivrutiner som introducerats med Windows Vista och även tillgängligt för Windows XP . Detta gör det lättare att skapa drivrutiner för specifika enhetsklasser. [ett]
Standarddrivrutiner kan vara svåra att skriva eftersom de måste hantera ett mycket brett utbud av system- och enhetstillstånd, speciellt i en flertrådig programmeringsmiljö. Dåligt skrivna drivrutiner kan orsaka allvarlig systemkorruption (t.ex. BSoD och datakorruption) eftersom alla standarddrivrutiner har höga privilegier när de kommer åt kärnan direkt. Användarlägesdrivrutinplattformen isolerar kärnan från problemen med direkt drivrutinåtkomst och tillhandahåller istället en ny förarklass med ett dedikerat applikationsprogrammeringsgränssnitt för avbrott på användarnivå och minneshantering. I händelse av ett fel gör den nya strukturen att föraren kan startas om omedelbart utan att systemet påverkas. Detta är särskilt användbart för enheter som är intermittent anslutna till systemet eller är hot-swappable via en bussteknik som USB eller FireWire .
Enligt Microsoft är UMDF-drivrutiner lättare att skriva och felsöka än drivrutiner i kärnläge. [2] Däremot kommer UMDF inte att användas för enheter med hög prestanda eller tillstånd.
Den första versionen av UMDF skickades som en del av Windows Media Player version 10 den 12 oktober 2004. Kodnamnet "Crescent" designades för att stödja Media Transfer Protocol- drivrutinen och inga offentliga gränssnitt eller dokumentation har tillhandahållits för den. Microsoft beslutade senare att förvandla UMDF till en utvecklingsplattform för drivrutiner. [3]
UMDF-drivrutinen är en DLL baserad på Microsofts Component Object Model (COM). UMDF använder dock inte COM för laddning, lossning eller samtidighetskontroll ; den använder bara COM som ett designmönster , till exempel att använda COM IUnknown- gränssnittet . Vid uppstart anropar UMDF "DllGetClassObject" för att få en pekare till "IClassFactory"-gränssnittet i drivrutinen, och använder sedan metoden "CreateInstance" i IClassFactory-gränssnittet för att instansiera förarens callback-objekt.
Ett drivrutinsobjekt är en instans av IWDFDriver-gränssnittet som tillhandahålls av ramverket. Föraren exponerar en uppsättning återuppringningar via IDriverEntry COM-gränssnittet, som är den primära ingångspunkten för drivrutinskonfiguration.