UMDF-drivrutinsvärdprocess

Det här avsnittet beskriver User-Mode Driver Framework-drivrutinsvärdprocessen (UMDF) och hur den fungerar med andra UMDF-komponenter. Det gäller både UMDF-versionerna 1 och 2.

Drivrutinsvärdprocessen (Wudfhost.exe) är en underordnad process i drivrutinshanteringstjänsten. Wudfhost.exe körs vanligtvis i LocalService-kontot , som har minsta behörighet på den lokala datorn. En instans av Wudfhost.exe läser in en eller flera DLL:er för UMDF-drivrutiner utöver ramverkets DLL:er. Drivrutinsvärdprocessen tillhandahåller en körningsmiljö som hanterar interprocesskommunikation (IPC) mellan drivrutinshanteraren och reflektorn, samt I/O-sändning, inläsning av drivrutiner, skiktning av drivrutiner och hantering av trådpooler.

Drivrutinshanteraren kan skapa flera samtidiga instanser av Wudfhost.exeenligt följande:

  • Om UMDF-drivrutinen har skapats med version 1.11 och körs på Windows 8 skapar drivrutinshanteraren som standard en enda instans av Wudfhost som kan vara värd för flera enhetsstackar. Den här tekniken kallas enhetspoolning.

    Om UMDF-drivrutinen har skapats med version 2 och körs på Windows 8.1 eller Windows 10 är pooleringen också aktiverad som standard.

  • Om drivrutinen skapades med UMDF version 1.9 eller tidigare skapar ramverket en separat instans av värdprocessen (Wudfhost) för varje enhetsstack.

Mer information om enhetspooler finns i Använda enhetspooler i UMDF-drivrutiner.

Varje Wudfhost.exe process körs i sitt eget adressutrymme och är därför isolerad från programprocesser och andra instanser av drivrutinsvärden. UMDF-drivrutiner som körs i samma process (enhetspooler) delar ett adressutrymme och är inte isolerade från varandra.

Du kan läsa in drivrutiner som skapats med UMDF version 1 och 2 samtidigt, antingen i samma värdprocess eller i olika värdprocesser. Till exempel läser drivrutinshanteraren som standard in en UMDF 1.11-drivrutin och en UMDF 2-drivrutin i samma värdprocess på en dator som kör Windows 8.1 eller senare.

Du kan dock inte läsa in UMDF version 1- och 2-drivrutiner i samma enhetsstack. Du kan till exempel inte läsa in en UMDF version 1-filterdrivrutin ovanför en funktionsdrivrutin för UMDF version 2.

Ett diagram som visar hur drivrutinsvärden relaterar till andra UMDF-komponenter finns i Översikt över UMDF.