Función SetupDiGetDeviceInterfacePropertyW (setupapi.h)

La función SetupDiGetDeviceInterfaceProperty recupera una propiedad de dispositivo establecida para una interfaz de dispositivo.

Sintaxis

WINSETUPAPI BOOL SetupDiGetDeviceInterfacePropertyW(
  [in]            HDEVINFO                  DeviceInfoSet,
  [in]            PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
  [in]            const DEVPROPKEY          *PropertyKey,
  [out]           DEVPROPTYPE               *PropertyType,
  [out]           PBYTE                     PropertyBuffer,
  [in]            DWORD                     PropertyBufferSize,
  [out, optional] PDWORD                    RequiredSize,
  [in]            DWORD                     Flags
);

Parámetros

[in] DeviceInfoSet

Identificador de un conjunto de información de dispositivo que contiene una interfaz de dispositivo para la que se va a recuperar una propiedad de interfaz de dispositivo.

[in] DeviceInterfaceData

Puntero a una estructura SP_DEVICE_INTERFACE_DATA que representa la interfaz de dispositivo para la que se va a recuperar una propiedad de interfaz de dispositivo.

[in] PropertyKey

Puntero a una estructura DEVPROPKEY que representa la clave de propiedad de interfaz de dispositivo de la propiedad de interfaz de dispositivo que se va a recuperar.

[out] PropertyType

Puntero a una variable con tipo DEVPROPTYPE que recibe el identificador property-data-type de la propiedad de interfaz de dispositivo solicitada. El identificador property-data-type es un or bit a bit entre un identificador de tipo de datos base y, si se modifica el tipo de datos base, un modificador property-data-type.

[out] PropertyBuffer

Puntero a un búfer que recibe la propiedad de interfaz de dispositivo solicitada. SetupDiGetDeviceInterfaceProperty recupera la propiedad solicitada solo si el búfer es lo suficientemente grande como para contener todos los datos de valor de propiedad. El puntero puede ser NULL. Si el puntero se establece en NULL y se proporciona RequiredSize , SetupDiGetDeviceInterfaceProperty devuelve el tamaño de la propiedad, en bytes, en *RequiredSize.

[in] PropertyBufferSize

Tamaño, en bytes, del búfer PropertyBuffer . Si PropertyBuffer está establecido en NULL, PropertyBufferSize debe establecerse en cero.

[out, optional] RequiredSize

Puntero a una variable con tipo DWORD que recibe el tamaño, en bytes, de la propiedad de la interfaz del dispositivo si se recupera la propiedad o el tamaño de búfer necesario, si el búfer no es lo suficientemente grande. Este puntero se puede establecer en NULL.

[in] Flags

Este parámetro debe establecerse en cero.

Valor devuelto

SetupDiGetDeviceInterfaceProperty devuelve TRUE si se realiza correctamente. De lo contrario, devuelve FALSE y el error registrado se puede recuperar llamando a GetLastError.

En la tabla siguiente se incluyen algunos de los códigos de error más comunes que esta función podría registrar. Esta API puede establecer otros códigos de error mediante las funciones del instalador de dispositivo a las que llama esta API.

Código devuelto Descripción
ERROR_INVALID_FLAGS
El valor de Flags no es cero.
ERROR_INVALID_HANDLE
El conjunto de información del dispositivo especificado por DevInfoSet no es válido.
ERROR_INVALID_PARAMETER
Un parámetro proporcionado no es válido. Una posibilidad es que la interfaz de dispositivo especificada por DeviceInterfaceData no sea válida.
ERROR_INVALID_REG_PROPERTY
La clave de propiedad proporcionada por PropertyKey no es válida.
ERROR_INVALID_DATA
Un valor de datos interno no especificado no era válido.
ERROR_INVALID_USER_BUFFER
Un búfer de usuario no es válido. Una posibilidad es que PropertyBuffer sea NULL y PropertyBufferSize no sea cero.
ERROR_NO_SUCH_DEVICE_INTERFACE
La interfaz de dispositivo especificada por DeviceInterfaceData no existe.
ERROR_INSUFFICIENT_BUFFER
El búfer PropertyBuffer no es lo suficientemente grande como para contener el valor de la propiedad o un búfer de datos interno que se pasó a una llamada del sistema era demasiado pequeño.
ERROR_NOT_ENOUGH_MEMORY
No había suficiente memoria del sistema disponible para completar la operación.
ERROR_NOT_FOUND
La propiedad del dispositivo solicitada no existe.
ERROR_ACCESS_DENIED
El autor de la llamada no tiene privilegios de administrador.

Comentarios

SetupDiGetDeviceInterfaceProperty forma parte del modelo de propiedades de dispositivo unificado.

SetupAPI solo admite una versión Unicode de SetupDiGetDeviceInterfaceProperty.

Un autor de llamada de SetupDiGetDeviceInterfaceProperty debe ser miembro del grupo Administradores para establecer una propiedad de interfaz de dispositivo.

Para obtener las claves de propiedad del dispositivo que representan las propiedades del dispositivo que se establecen para una interfaz de dispositivo, llame a SetupDiGetDeviceInterfacePropertyKeys.

Para establecer una propiedad de interfaz de dispositivo, llame a SetupDiSetDeviceInterfaceProperty.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows Vista y versiones posteriores de Windows.
Plataforma de destino DesktopFor universal, call CM_Get_Device_Interface_Property
Encabezado setupapi.h (incluya Setupapi.h)
Library Setupapi.lib

Consulte también

SetupDiGetDeviceInterfacePropertyKeys

SetupDiSetDeviceInterfaceProperty