Udostępnij przez


Wyliczanie zainstalowanych urządzeń

Nie należy wyliczać urządzeń bezpośrednio przy użyciu kluczy rejestru. Klucze rejestru nie zawierają wymaganych informacji do wyliczania zainstalowanych urządzeń w systemie. Te informacje, takie jak to, czy urządzenie jest rzeczywiście obecne, czy jest urządzeniem fantomowym (czyli takim, które nie jest podłączone), są przechowywane przez menedżera Plug and Play (PnP). Menedżer pnP wykonuje również dodatkowe filtrowanie informacji rejestru.

Aby bezpiecznie wyliczyć zainstalowane urządzenia, wykonaj następujące kroki.

  • Korzystanie z funkcji programu Configuration Manager :

    1. Użyj CM_Get_Device_ID_List, aby pobrać listę unikatowych identyfikatorów instancji urządzeń. Aby pobrać informacje tylko dla urządzeń znajdujących się w systemie, ustaw CM_GETIDLIST_FILTER_PRESENT w parametrze ulFlags .

    2. Możesz użyć unikatowego identyfikatora wystąpienia urządzenia z CM_Locate_DevNode, aby pobrać DEVINST reprezentujący urządzenie do użycia z innymi interfejsami API Configuration Manager.

  • Korzystanie z funkcji SetupAPI :

    1. Użyj SetupDiGetClassDevs, aby pobrać informacje dotyczące zestawu urządzeń. Aby pobrać informacje tylko dla urządzeń znajdujących się w systemie, ustaw DIGCF_PRESENT w parametrze Flags .

    2. Użyj setupDiEnumDeviceInfo , aby wyliczyć urządzenia w zestawie.

    3. Możesz użyć SP_DEVINFO_DATA zwróconych przez SetupDiEnumDeviceInfo z innymi interfejsami API SetupApi lub użyć SetupDiGetDeviceInstanceId , aby pobrać unikatowy identyfikator wystąpienia urządzenia (ID) dla urządzenia.