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.
Varning
UMDF 2 är den senaste versionen av UMDF och ersätter UMDF 1. 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. Universella Windows-drivrutiner måste använda UMDF 2.
De arkiverade UMDF 1-exemplen finns i Windows 11 version 22H2 – maj 2022 Uppdatering av drivrutinsexempel.
Mer information finns i Komma igång med UMDF.
Ramverket och UMDF-drivrutinen kommunicerar via UMDF DDI. UMDF DDI liknar KMDF DDI förutom att UMDF DDI baseras på COM. Därför kommer drivrutinsförfattare som är bekanta med KMDF att förstå UMDF.
För varje typ av ramverksobjekt definierar UMDF ett gränssnitt genom vilket objektinstanser kan manipuleras. Varje gränssnitt stöder metoder och egenskaper. Metoder definierar åtgärder som kan vidtas för objektets och egenskapernas räkning och hämtar objektets egenskaper. Vissa gränssnitt implementeras av ramverket och andra implementeras av drivrutinen. Gränssnitt som exponeras av ett ramverksobjekt är av formuläret IWDF<objekt>, medan de gränssnitt för återanrop av händelser som exponeras av en drivrutin är av formuläret I<objekt><åtgärd>, där <objekt> representerar en kö, begäran och så vidare, och <åtgärd> anger vad gränssnittet gör. Metoderna för callback-gränssnitten börjar med "On".
UMDF-drivrutinen kommunicerar med ramverkets objekt via deras metoder och egenskaper. Ramverket kommunicerar med drivrutinen via händelsemeddelanden, som är återanropsfunktioner som ramverket kan anropa för att meddela drivrutinen om specifika händelser. Om du vill registrera återanropsfunktioner kan drivrutinen anropa till exempel följande ramverksobjektmetoder och skicka en pekare till IUnknown-gränssnittet som är associerat med alla gränssnitt för återanropsfunktionerna som drivrutinen stöder.
Som ett exempel på kommunikation mellan drivrutin och ramverk, överväg enhetens standardköobjekt för I/O. En drivrutin kan anropa metoder, till exempel IWDFIoQueue::GetState, för att hämta statusinformation om I/O-kön eller IWDFIoQueue::RetrieveNextRequest för att hämta en begäran från I/O-kön. En drivrutin kan också begära meddelanden i I/O-kön genom att anropa metoden IWDFDevice::CreateIoQueue för att registrera motringningsgränssnitt, till exempel IQueueCallbackRead och IQueueCallbackWrite. Metoderna för dessa gränssnitt anropas därefter av ramverket när ett program skickar läs- och skrivbegäranden.
Ramverket tillhandahåller all synkronisering som krävs mellan metoder för återanrop av drivrutiner. Som standard synkroniseras ramverket på objektnivå för enheten. Det innebär att ramverket inte anropar metoderna för återanrop av händelser samtidigt på eller under enhetens objektnivå. En drivrutin kan åsidosätta den här standardinställningen genom att begära ingen synkronisering. Mer information finns i Ange ett återanropssynkroniseringsläge.