Partilhar via


Recuperação das relações dos dispositivos

No Windows Vista e versões posteriores do Windows, o modelo de propriedade de dispositivo unificado inclui propriedades de relações de dispositivo. O modelo unificado de propriedades de dispositivos utiliza as chaves de propriedade para representar estas propriedades. A lista de relações representadas no modelo de propriedade de dispositivo unificado são:

Windows Server 2003, Windows XP e Windows 2000 não suportam as chaves de propriedade do modelo de propriedade unificado. No entanto, você pode recuperar as informações correspondentes chamando as funções do gerenciador de configurações Plug and Play (PnP). Para manter a compatibilidade com versões anteriores do Windows, o Windows Vista e versões posteriores também suportam chamar as funções do gestor de configurações PnP para recuperar as propriedades das relações de dispositivos. No entanto, você deve usar as chaves de propriedade do modelo de propriedade de dispositivo unificado para acessar as propriedades de relação de dispositivo. Para obter informações sobre como usar chaves de propriedade para acessar propriedades de driver de dispositivo, consulte Acessando propriedades de instância de dispositivo (Windows Vista e posterior).

Para obter informações sobre como acessar as propriedades de relações de dispositivo no Windows Server 2003, Windows XP e Windows 2000, consulte os seguintes tópicos:

Recuperando Relações de Ejeção, Relações de Remoção e Relações de Poder, e Relações de Ônibus

Recuperando o pai de uma instância de dispositivo

Recuperando os filhos de uma instância de dispositivo

Recuperando os irmãos de uma instância de dispositivo

Recuperando Relações de Ejeção, Relações de Remoção e Relações de Poder, e Relações de Ônibus

Para recuperar informações de relações de dispositivo no Windows Server 2003, Windows XP e Windows 2000, chame CM_Get_Device_ID_List e forneça os seguintes valores de parâmetro:

  • Defina pszFilter como um ponteiro para uma cadeia de caracteres terminada por NULL que especifica o identificador de instância do dispositivo para o qual recuperar informações de relações.

  • Defina Buffer como um ponteiro para um buffer que recebe uma lista de identificadores de instância de dispositivo terminados por NULL. A lista é encerrada por um caractere NULL adicional. Você pode obter o tamanho de buffer necessário chamando a função CM_Get_Device_ID_List_Size .

  • Defina BufferLen para o tamanho, em caracteres, do buffer Buffer .

  • Defina ulFlags como um dos seguintes sinalizadores para recuperar as informações de relações correspondentes:

    • CM_GETIDLIST_FILTER_EJECTIONRELATIONS

      O sinalizador CM_GETIDLIST_FILTER_EJECTIONRELATIONS recupera relações de ejeção, que são as mesmas informações fornecidas pela propriedade de dispositivo DEVPKEY_Device_EjectionRelations no Windows Vista e versões posteriores.

    • CM_GETIDLIST_FILTER_REMOVALRELATIONS

      O sinalizador CM_GETIDLIST_FILTER_REMOVALRELATIONS recupera relações de remoção, que são as mesmas informações fornecidas pela propriedade de dispositivo DEVPKEY_Device_RemovalRelations no Windows Vista e versões posteriores.

    • CM_GETIDLIST_FILTER_POWERRELATIONS

      O flag CM_GETIDLIST_FILTER_POWERRELATIONS recupera relações de energia, que é a mesma informação fornecida pela propriedade de dispositivo DEVPKEY_Device_PowerRelations no Windows Vista e em versões posteriores do Windows.

    • CM_GETIDLIST_FILTER_BUSRELATIONS

      A bandeira CM_GETIDLIST_FILTER_BUSRELATIONS recupera relações de barramento, que são as mesmas informações fornecidas pela propriedade de dispositivo DEVPKEY_Device_BusRelations no Windows Vista e versões posteriores.

Se a chamada para CM_Get_Device_ID_List for bem-sucedida, CM_Get_Device_ID_List recuperará as informações de relações solicitadas e retornará CR_SUCCESS. Caso contrário, CM_Get_Device_ID_List retorna um dos códigos de erro com prefixo "CR_" que são definidos em Cfgmgr32.h.

A recuperar o elemento pai de uma instância de dispositivo

Para recuperar o identificador de instância de dispositivo de um dispositivo pai no Windows Server 2003, Windows XP e Windows 2000, execute estas etapas:

  1. Chame a função CM_Get_Parent para recuperar um identificador de instância de dispositivo para o dispositivo pai de uma instância de dispositivo.

  2. Chame CM_Get_Device_ID para recuperar o identificador de instância do dispositivo associado ao identificador de instância do dispositivo para o dispositivo pai que foi recuperado pela chamada anterior para CM_Get_Parent.

Essas informações recuperadas usando este procedimento são as mesmas representadas pela propriedade DEVPKEY_Device_Parent no modelo de propriedade de dispositivo unificado do Windows Vista e versões posteriores.

Recuperando os filhos de uma instância de dispositivo

Para recuperar os identificadores de instância de dispositivo dos dispositivos filho de uma instância de dispositivo no Windows Server 2003, Windows XP e Windows 2000, execute estas etapas:

  1. Chame a função CM_Get_Child para recuperar um identificador de instância de dispositivo para o primeiro dispositivo filho associado a uma instância de dispositivo.

  2. Chame CM_Get_Sibling quantas vezes for necessário para enumerar todos os dispositivos irmãos do primeiro dispositivo filho que foi recuperado pela chamada para CM_Get_Child.

  3. Chame CM_Get_Device_ID para recuperar os identificadores de instância de dispositivo associados às alças de instância de dispositivo que foram retornadas pelas chamadas para CM_Get_Child e CM_Get_Sibling.

Essas informações recuperadas usando este procedimento são as mesmas representadas pela propriedade DEVPKEY_Device_Children no modelo de propriedade de dispositivo unificado do Windows Vista e versões posteriores.

Recuperando os irmãos de uma instância de dispositivo

Para recuperar os identificadores de instância de dispositivo dos dispositivos irmãos de instância de dispositivo Abc no Windows Server 2003, Windows XP e Windows 2000, execute estas etapas:

  1. Chame a função CM_Get_Parent para recuperar um identificador de instância de dispositivo para o dispositivo pai da instância de dispositivo Abc.

  2. Chame a função CM_Get_Child para obter um identificador de instância do primeiro dispositivo filho do dispositivo pai da instância de dispositivo Abc.

  3. Chame CM_Get_Sibling quantas vezes forem necessárias para enumerar todos os dispositivos irmãos do primeiro filho do dispositivo pai. Essa enumeração também retornará um identificador para a instância do dispositivo Abc.

  4. Chame CM_Get_Device_ID para recuperar os identificadores de instância de dispositivo que estão associados aos identificadores de instância retornados pelas chamadas anteriores para CM_Get_Sibling. Remova o identificador da instância do dispositivo Abc da lista de dispositivos irmãos do primeiro dispositivo filho do dispositivo pai.

As informações recuperadas usando este procedimento são as mesmas representadas pela propriedade DEVPKEY_Device_Siblings no modelo de propriedade de dispositivo unificado do Windows Vista e versões posteriores. Se uma chamada de função CM_Xxx listada nesta seção for bem-sucedida, a função CM_Xxx recuperará as informações solicitadas e retornará CR_SUCCESS. Caso contrário, a função CM_Xxx retorna um dos códigos de erro com prefixo "CR_" que são definidos em Cfgmgr32.h.