Recuperando relações de dispositivo

No Windows Vista e versões posteriores do Windows, o modelo de propriedade do dispositivo unificado inclui propriedades de relações de dispositivo. O modelo de propriedade do dispositivo unificado usa chaves de propriedade para representar essas propriedades. A lista de relações representada no modelo de propriedade do dispositivo unificado é:

O Windows Server 2003, o Windows XP e o Windows 2000 não dão suporte às chaves de propriedade do modelo de propriedade unificado. No entanto, você pode recuperar as informações correspondentes chamando funções do gerenciador de configurações de Plug and Play (PnP). Para manter a compatibilidade com versões anteriores do Windows, o Windows Vista e versões posteriores também dão suporte à chamada de funções do gerenciador de configurações PnP para recuperar propriedades de relações de dispositivo. No entanto, você deve usar as chaves de propriedade do modelo de propriedade do dispositivo unificado para acessar as propriedades de relação do dispositivo. Para obter informações sobre como usar chaves de propriedade para acessar as propriedades do driver de dispositivo, consulte Acessando propriedades da instância do 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 em 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 em NULL. A lista é encerrada por um caractere NULL adicional. Você pode obter o tamanho do buffer necessário chamando a função CM_Get_Device_ID_List_Size .

  • Defina BufferLen como o tamanho, em caracteres , do buffer de 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 as relações de ejeção, que são as mesmas informações fornecidas pela propriedade do dispositivo DEVPKEY_Device_EjectionRelations no Windows Vista e versões posteriores.

    • CM_GETIDLIST_FILTER_REMOVALRELATIONS

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

    • CM_GETIDLIST_FILTER_POWERRELATIONS

      O sinalizador CM_GETIDLIST_FILTER_POWERRELATIONS recupera relações de energia, que são as mesmas informações fornecidas pela propriedade do dispositivo DEVPKEY_Device_PowerRelations no Windows Vista e versões posteriores.

    • CM_GETIDLIST_FILTER_BUSRELATIONS

      O sinalizador CM_GETIDLIST_FILTER_BUSRELATIONS recupera as relações de barramento, que são as mesmas informações fornecidas pela propriedade do 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 retornará um dos códigos de erro com o prefixo "CR_" definido em Cfgmgr32.h.

Recuperando o 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, siga 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 do 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, siga 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 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 do dispositivo associados aos identificadores de instância do dispositivo que foram retornados 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 do 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 da instância do dispositivo Abc no Windows Server 2003, Windows XP e Windows 2000, siga 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 do dispositivo Abc.

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

  3. Chame CM_Get_Sibling quantas vezes forem necessárias para enumerar todos os dispositivos irmãos do primeiro dispositivo 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 do dispositivo associados aos identificadores de instância do dispositivo que foram retornados pelas chamadas anteriores para CM_Get_Sibling. Remova o identificador para a instância do dispositivo Abc da lista de dispositivos irmãos do primeiro dispositivo filho do dispositivo pai.

As informações recuperadas usando esse procedimento são as mesmas representadas pela propriedade DEVPKEY_Device_Siblings no modelo de propriedade do 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 retornará um dos códigos de erro com o prefixo "CR_" definido em Cfgmgr32.h.