Kommentar
Å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.
Du får inte enumerera enhetsgränssnitten i ett system genom att komma åt registernycklar direkt. Precis som med alla registernycklar kan nyckelns plats, namn eller format ändras mellan olika versioner av Windows.
Använd följande riktlinjer för att på ett säkert sätt enumerera enhetsgränssnitt.
Program i användarläge bör följa dessa steg:
Använda Configuration Manager--funktioner:
Använd CM_Get_Device_Interface_List för att hämta en lista över enhetsgränssnitt för det angivna InterfaceClassGuid. Du kan valfritt begränsa listan till endast enhetsgränssnitt som exponeras av en viss enhet genom att ange parametern pDeviceID till en specifik enhetsinstansidentifierare.
Om du bara vill inkludera enhetsgränssnitt som finns (aktiverade) i ett system anger du flaggan CM_GET_DEVICE_INTERFACE_LIST_PRESENT i parametern ulFlags .
Användning av SetupApi-funktioner:
Använd SetupDiGetClassDevs eller SetupDiGetClassDevsEx med flaggan DIGCF_DEVICEINTERFACE i parametern Flags för att hämta enhetsgränssnitten för den angivna enhetsgränssnittsklassen. Du kan valfritt begränsa listan till endast enhetsgränssnitt som exponeras av en viss enhet genom att ange parametern Enumerator till en specifik enhetsinstansidentifierare.
Om du bara vill inkludera enhetsgränssnitt som finns (aktiverade) i ett system anger du flaggan DIGCF_PRESENT i parametern Flags.
Använd SetupDiEnumDeviceInterfaces för att räkna upp gränssnitt som returneras av ovanstående anrop.
Drivrutiner i kernelläge bör använda IoGetDeviceInterfaces för att hämta en lista över enhetsgränssnitt för det angivna InterfaceClassGuid. Du kan också begränsa listan till endast enhetsgränssnitt som exponeras av en viss enhet genom att ange parametern PhysicalDeviceObject .