Recuperación de relaciones de dispositivos

En Windows Vista y versiones posteriores de Windows, el modelo de propiedades de dispositivo unificado incluye propiedades de relaciones de dispositivo. El modelo de propiedades de dispositivo unificado usa claves de propiedad para representar estas propiedades. La lista de relaciones representadas en el modelo de propiedades de dispositivo unificado son:

Windows Server 2003, Windows XP y Windows 2000 no admiten las claves de propiedad del modelo de propiedades unificado. Sin embargo, puede recuperar la información correspondiente llamando a Plug and Play (PnP) funciones del administrador de configuración. Para mantener la compatibilidad con versiones anteriores de Windows, Windows Vista y versiones posteriores también admiten la llamada a funciones del administrador de configuración de PnP para recuperar las propiedades de relaciones de dispositivos. Sin embargo, debe usar las claves de propiedad del modelo de propiedades de dispositivo unificado para acceder a las propiedades de relación del dispositivo. Para obtener información sobre cómo usar las claves de propiedad para acceder a las propiedades del controlador de dispositivo, vea Obtener acceso a las propiedades de instancia de dispositivo (Windows Vista y versiones posteriores).

Para obtener información sobre cómo acceder a las propiedades de relaciones de dispositivos en Windows Server 2003, Windows XP y Windows 2000, vea los temas siguientes:

Recuperar relaciones de ejección, relaciones de eliminación y relaciones de poder, y relaciones de bus

Recuperar el elemento primario de una instancia de dispositivo

Recuperar los elementos secundarios de una instancia de dispositivo

Recuperación de los elementos del mismo nivel de una instancia de dispositivo

Recuperar relaciones de ejección, relaciones de eliminación y relaciones de poder, y relaciones de bus

Para recuperar información de relaciones de dispositivos en Windows Server 2003, Windows XP y Windows 2000, llame a CM_Get_Device_ID_List y proporcione los siguientes valores de parámetro:

  • Establezca pszFilter en un puntero a una cadena terminada en NULL que especifique el identificador de instancia de dispositivo para el que se va a recuperar información de relaciones.

  • Establezca Buffer en un puntero a un búfer que recibe una lista de identificadores de instancia de dispositivo terminadas en NULL. La lista finaliza con un carácter NULL adicional. Puede obtener el tamaño de búfer necesario llamando a la función CM_Get_Device_ID_List_Size .

  • Establezca BufferLen en el tamaño, en caracteres, del búfer de búfer .

  • Establezca ulFlags en una de las marcas siguientes para recuperar la información de relaciones correspondiente:

Si la llamada a CM_Get_Device_ID_List se realiza correctamente, CM_Get_Device_ID_List recupera la información de relaciones solicitada y devuelve CR_SUCCESS. De lo contrario, CM_Get_Device_ID_List devuelve uno de los códigos de error con el prefijo "CR_" que se definen en Cfgmgr32.h.

Recuperar el elemento primario de una instancia de dispositivo

Para recuperar el identificador de instancia de dispositivo de un dispositivo primario en Windows Server 2003, Windows XP y Windows 2000, siga estos pasos:

  1. Llame a la función CM_Get_Parent para recuperar un identificador de instancia de dispositivo en el dispositivo primario de una instancia de dispositivo.

  2. Llame a CM_Get_Device_ID para recuperar el identificador de instancia de dispositivo asociado al identificador de instancia de dispositivo al dispositivo primario que recuperó la llamada anterior a CM_Get_Parent.

Esta información recuperada mediante este procedimiento es la misma que la representada por la propiedad DEVPKEY_Device_Parent en el modelo de propiedades de dispositivo unificado de Windows Vista y versiones posteriores.

Recuperar los elementos secundarios de una instancia de dispositivo

Para recuperar los identificadores de instancia de dispositivo de los dispositivos secundarios de una instancia de dispositivo en Windows Server 2003, Windows XP y Windows 2000, siga estos pasos:

  1. Llame a la función CM_Get_Child para recuperar un identificador de instancia de dispositivo al primer dispositivo secundario asociado a una instancia de dispositivo.

  2. Llame a CM_Get_Sibling tantas veces como sea necesario enumerar todos los dispositivos del mismo nivel del primer dispositivo secundario recuperado por la llamada a CM_Get_Child.

  3. Llame a CM_Get_Device_ID para recuperar los identificadores de instancia de dispositivo asociados a los identificadores de instancia de dispositivo devueltos por las llamadas a CM_Get_Child y CM_Get_Sibling.

Esta información recuperada mediante este procedimiento es la misma que la representada por la propiedad DEVPKEY_Device_Children en el modelo de propiedades de dispositivo unificado de Windows Vista y versiones posteriores.

Recuperación de los elementos del mismo nivel de una instancia de dispositivo

Para recuperar los identificadores de instancia de dispositivo de los dispositivos del mismo nivel de la instancia de dispositivo Abc en Windows Server 2003, Windows XP y Windows 2000, siga estos pasos:

  1. Llame a la función CM_Get_Parent para recuperar un identificador de instancia de dispositivo en el dispositivo primario de la instancia de dispositivo Abc.

  2. Llame a la función CM_Get_Child para recuperar un identificador de instancia de dispositivo al primer dispositivo secundario del dispositivo primario de la instancia de dispositivo Abc.

  3. Llame a CM_Get_Sibling tantas veces como sea necesario para enumerar todos los dispositivos del mismo nivel del primer dispositivo secundario del dispositivo primario. Esta enumeración también devolverá un identificador a la instancia de dispositivo Abc.

  4. Llame a CM_Get_Device_ID para recuperar los identificadores de instancia de dispositivo asociados a los identificadores de instancia de dispositivo devueltos por las llamadas anteriores a CM_Get_Sibling. Quite el identificador de la instancia de dispositivo Abc de la lista de dispositivos del mismo nivel del primer dispositivo secundario del dispositivo primario.

La información recuperada mediante este procedimiento es la misma que la representada por la propiedad DEVPKEY_Device_Siblings en el modelo de propiedades de dispositivo unificado de Windows Vista y versiones posteriores. Si una llamada de función CM_Xxx que aparece en esta sección se realiza correctamente, la función CM_Xxx recupera la información solicitada y devuelve CR_SUCCESS. De lo contrario, la función CM_Xxx devuelve uno de los códigos de error con el prefijo "CR_" que se definen en Cfgmgr32.h.