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.
Alla drivrutiner för en fysisk, logisk eller virtuell enhet som användarlägeskod kan dirigera I/O-begäranden till måste ange ett namn för sina klienter i användarläge. Med hjälp av namnet identifierar ett användarlägesprogram (eller en annan systemkomponent) den enhet som den begär I/O från.
I Windows NT 4.0 och tidigare versioner av det NT-baserade operativsystemet namngav drivrutinerna sina enhetsobjekt och konfigurerade sedan symboliska länkar i registret mellan dessa namn och ett användar synligt logiskt Win32-namn.
Från och med Windows 2000 namnger drivrutiner inte enhetsobjekt. I stället använder de enhetsgränssnitt som grupperas efter enhetsgränssnittsklasser. En enhetsgränssnittsklass är ett sätt att exportera enhets- och drivrutinsfunktioner till andra systemkomponenter, inklusive andra drivrutiner, samt program i användarläge. En drivrutin kan registrera och aktivera ett enhetsgränssnitt instans av -enhetsgränssnittsklassen för varje enhetsobjekt som användarläges-I/O-begäranden kan skickas till. Varje enhetsgränssnittsklass bör representera en konceptuell funktion som alla enhetsgränssnitt i den klassen ska stödja eller representera ett visst I/O-kontrakt.
Varje enhetsgränssnittsklass är associerad med ett GUID. Systemet definierar GUID för vanliga enhetsgränssnittsklasser i enhetsspecifika huvudfiler. Leverantörer kan skapa ytterligare enhetsgränssnittsklasser.
Till exempel kan tre olika typer av musenheter registrera enhetsgränssnitt som är medlemmar i samma enhetsgränssnittsklass, även om man ansluter via en USB-port, en sekund via en serieport och den tredje via en infraröd port. Varje drivrutin registrerar sin enhet som medlem i gränssnittsklassen GUID_DEVINTERFACE_MOUSE. Detta GUID definieras i huvudfilen Ntddmou.h.
Drivrutiner kan registrera och aktivera enhetsgränssnitt för en enhet som de styr för så många enhetsgränssnittsklasser som enheten och drivrutinen stöder funktionerna för. En drivrutin för en disk som kan monteras bör till exempel registreras för både diskgränssnittsklassen (GUID_DEVINTERFACE_DISK) och den monteringsbara enhetsklassen (MOUNTDEV_MOUNTED_DEVICE_GUID).
När en drivrutin registrerar ett enhetsgränssnitt instans av en enhetsgränssnittsklassassocierar I/O-hanteraren enheten och enhetsgränssnittsklassens GUID med ett symboliskt länknamn. Drivrutinen måste aktiveraenhetsgränssnittet för att den symboliska länken ska kunna användas för att en drivrutin eller ett program ska kunna skicka I/O till. Registreringen av länknamnet bevaras mellan systemstarter, men enhetsgränssnittet måste aktiveras av drivrutin vid varje uppräkning av enheten. Ett program som använder en viss enhetsgränssnittsklass kan fråga efter instanser av enhetsgränssnitt i den klassen och ta emot en lista med symboliska länknamn som representerar enheter som stöder gränssnittet. Programmet kan sedan använda det symboliska länknamnet som mål för I/O-begäranden.
Blanda inte ihop enhetsgränssnitt med de gränssnitt som drivrutiner kan exportera som svar på en IRP_MN_QUERY_INTERFACE begäran. IRP:et används för att skicka rutinmässiga ingångspunkter mellan kernellägesdrivrutiner.