Función SetupDiGetClassPropertyW (setupapi.h)
La función SetupDiGetClassProperty recupera una propiedad de dispositivo establecida para una clase de configuración de dispositivo o una clase de interfaz de dispositivo.
Sintaxis
WINSETUPAPI BOOL SetupDiGetClassPropertyW(
[in] const GUID *ClassGuid,
[in] const DEVPROPKEY *PropertyKey,
[out] DEVPROPTYPE *PropertyType,
[out] PBYTE PropertyBuffer,
[in] DWORD PropertyBufferSize,
[out, optional] PDWORD RequiredSize,
[in] DWORD Flags
);
Parámetros
[in] ClassGuid
Puntero a un GUID que identifica la clase de configuración del dispositivo o la clase de interfaz de dispositivo para la que se va a recuperar una propiedad de dispositivo establecida para la clase de dispositivo. Para obtener información sobre cómo especificar el tipo de clase, vea el parámetro Flags .
[in] PropertyKey
Puntero a una estructura DEVPROPKEY que representa la clave de propiedad del dispositivo de la propiedad de clase de dispositivo solicitada.
[out] PropertyType
Puntero a una variable con tipo DEVPROPTYPE que recibe el identificador property-data-type de la propiedad de clase de dispositivo solicitada, donde el identificador property-data-type es el 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 clase de dispositivo solicitada. SetupDiGetClassProperty recupera el valor de propiedad solicitado 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 , SetupDiGetClassProperty devuelve el tamaño de la propiedad de clase de dispositivo, 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 clase de dispositivo si se recupera la propiedad de clase de dispositivo 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
Uno de los valores siguientes, que especifica si la clase es una clase de configuración de dispositivo o una clase de interfaz de dispositivo.
DICLASSPROP_INSTALLER
ClassGuid especifica una clase de configuración de dispositivo. Esta marca no se puede usar con DICLASSPROP_INTERFACE.
DICLASSPROP_INTERFACE
ClassGuid especifica una clase de interfaz de dispositivo. Esta marca no se puede usar con DICLASSPROP_INSTALLER.
Valor devuelto
SetupDiGetClassProperty 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.
Código devuelto | Descripción |
---|---|
|
El valor de Flags no es cero. |
|
La clase de instalación del dispositivo especificada por ClassGuid no es válida. Este error solo puede producirse si se especifica la marca DICLASSPROP_INSTALLER. |
|
Un parámetro no especificado no es válido. |
|
La clave de propiedad proporcionada por PropertyKey no es válida. |
|
La cadena de referencia de la interfaz de dispositivo no es válida. Este error se puede devolver si se especifica la marca DICLASSPROP_INTERFACE. |
|
Un valor de datos interno no especificado no era válido. |
|
Un búfer de usuario no es válido. Una posibilidad es que PropertyBuffer sea NULL y PropertyBufferSize no sea cero. |
|
La clase de interfaz de dispositivo especificada por ClassGuid no existe. Este error solo puede producirse si se especifica la marca DICLASSPROP_INTERFACE. |
|
Un búfer de datos interno que se pasó a una llamada del sistema era demasiado pequeño. |
|
No había suficiente memoria del sistema disponible para completar la operación. |
|
La propiedad del dispositivo solicitada no existe. |
|
El autor de la llamada no tiene privilegios de administrador. |
Comentarios
SetupDiGetClassProperty forma parte del modelo de propiedades de dispositivo unificado.
SetupAPI solo admite una versión Unicode de SetupDiGetClassProperty.
Un autor de llamada de SetupDiGetClassProperty 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 clase de dispositivo en un equipo local, llame a SetupDiGetClassPropertyKeys.
Para recuperar una propiedad de clase de dispositivo en un equipo remoto, llame a SetupDiGetClassPropertyEx.
Para establecer una propiedad de clase de dispositivo en un equipo local, llame a SetupDiSetClassPropertyy para establecer una propiedad de clase de dispositivo en un equipo remoto, llame a SetupDiSetClassPropertyEx.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible en Windows Vista y versiones posteriores de Windows. |
Plataforma de destino | DesktopFor universal, call CM_Get_Class_Property |
Encabezado | setupapi.h (incluya Setupapi.h) |
Library | Setupapi.lib |