Función SetupDiGetDeviceInterfaceAlias (setupapi.h)

La función SetupDiGetDeviceInterfaceAlias devuelve un alias de una interfaz de dispositivo especificada.

Sintaxis

WINSETUPAPI BOOL SetupDiGetDeviceInterfaceAlias(
  [in]  HDEVINFO                  DeviceInfoSet,
  [in]  PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
  [in]  const GUID                *AliasInterfaceClassGuid,
  [out] PSP_DEVICE_INTERFACE_DATA AliasDeviceInterfaceData
);

Parámetros

[in] DeviceInfoSet

Puntero al conjunto de información del dispositivo que contiene la interfaz de dispositivo para la que se va a recuperar un alias. Este identificador normalmente lo devuelve SetupDiGetClassDevs.

[in] DeviceInterfaceData

Puntero a una estructura de SP_DEVICE_INTERFACE_DATA que especifica la interfaz del dispositivo en DeviceInfoSet para la que se va a recuperar un alias. Este puntero normalmente lo devuelve SetupDiEnumDeviceInterfaces.

[in] AliasInterfaceClassGuid

Puntero a un GUID que especifica la clase de interfaz del alias que se va a recuperar.

[out] AliasDeviceInterfaceData

Puntero a un búfer asignado por el autor de la llamada que contiene, al devolverse correctamente, una estructura de SP_DEVICE_INTERFACE_DATA completada que identifica el alias solicitado. El llamador debe establecer AliasDeviceInterfaceData.cbSize en sizeof(SP_DEVICE_INTERFACE_DATA) antes de llamar a esta función.

Valor devuelto

SetupDiGetDeviceInterfaceAlias devuelve TRUE si la función se completó sin error. Si la función se completó con un error, se devuelve FALSE y se puede recuperar el código de error mediante una llamada a GetLastError.

Los posibles errores devueltos por GetLastError se enumeran en la tabla siguiente.

Código devuelto Descripción
ERROR_INVALID_PARAMETER
DeviceInfoSet no válido o parámetro DeviceInterfaceData no válido.
ERROR_NO_SUCH_INTERFACE_DEVICE
No hay ningún alias de la clase AliasInterfaceClassGuid para la interfaz de dispositivo especificada.
ERROR_INVALID_USER_BUFFER
Búfer AliasDeviceInterfaceData no válido.

Comentarios

Las interfaces de dispositivo se consideran alias si son de diferentes clases de interfaz, pero son compatibles con el mismo dispositivo y tienen cadenas de referencia idénticas.

SetupDiGetDeviceInterfaceAlias se puede usar para localizar un dispositivo que expone más de una interfaz. Por ejemplo, considere un disco que puede formar parte de un volumen tolerante a errores y que puede contener datos cifrados. El controlador de función del dispositivo de disco podría registrar una interfaz de volumen tolerante a errores y una interfaz de volumen cifrada. Estas interfaces son alias de interfaz de dispositivo si el controlador de función los registra con cadenas de referencia idénticas y hacen referencia al mismo dispositivo. (Es probable que las cadenas de referencia sean NULL y, por tanto, sean iguales).

Para localizar este tipo de dispositivo de varias interfaces, busque primero todos los dispositivos disponibles que exponen una de las interfaces, como la interfaz de volumen tolerante a errores, mediante SetupDiGetClassDevs y SetupDiEnumDeviceInterfaces. A continuación, pase un dispositivo con la primera interfaz (volumen tolerante a errores) a SetupDiGetDeviceInterfaceAlias y solicite un alias de la otra clase de interfaz (volumen cifrado).

Si el alias solicitado existe, pero el búfer AliasDeviceInterfaceData proporcionado por el autor de la llamada no es válido, esta función agrega correctamente el elemento de interfaz del dispositivo a DevInfoSet , pero devuelve FALSE para el valor devuelto. En este caso, GetLastError devuelve ERROR_INVALID_USER_BUFFER.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Microsoft Windows 2000 y versiones posteriores de Windows.
Plataforma de destino Escritorio
Encabezado setupapi.h (incluya Setupapi.h)
Library Setupapi.lib
Archivo DLL Setupapi.dll

Consulte también

SetupDiEnumDeviceInterfaces

SetupDiGetClassDevs