Compartilhar via


Enumerar dispositivos instalados

Você não deve enumerar dispositivos usando chaves do Registro diretamente. As chaves do Registro não contêm as informações necessárias para enumerar dispositivos instalados no sistema. Essas informações, como se o dispositivo está realmente presente ou se é um dispositivo fantasma (que não está conectado), são mantidas pelo gerenciador do Plug and Play (PnP). O gerenciador PnP também executa filtragem adicional de informações do Registro.

Para enumerar dispositivos instalados com segurança, siga estas etapas.

  • Usando funções do Configuration Manager :

    1. Use CM_Get_Device_ID_List para recuperar uma lista de cadeias exclusivas de identificadores de instância de dispositivo (ID). Para recuperar informações somente para dispositivos presentes no sistema, defina CM_GETIDLIST_FILTER_PRESENT no parâmetro ulFlags .

    2. Você pode usar a ID exclusiva da instância do dispositivo com CM_Locate_DevNode para recuperar um DEVINST que representa o dispositivo a ser utilizado com outras APIs do Configuration Manager.

  • Usando funções SetupAPI :

    1. Use SetupDiGetClassDevs para recuperar informações para um conjunto de dispositivos. Para recuperar informações somente para dispositivos presentes no sistema, defina DIGCF_PRESENT no parâmetro Flags .

    2. Use SetupDiEnumDeviceInfo para enumerar os dispositivos no conjunto.

    3. Você pode usar o SP_DEVINFO_DATA retornado por SetupDiEnumDeviceInfo com outras APIs SetupApi ou usar SetupDiGetDeviceInstanceId para recuperar uma ID (identificador de instância de dispositivo) exclusivo para o dispositivo.