Método IWDFUnifiedPropertyStore::SetPropertyData (wudfddi.h)
[Advertencia: UMDF 2 es la versión más reciente de UMDF y sustituye a UMDF 1. Todos los controladores UMDF nuevos deben escribirse con UMDF 2. No se agregan nuevas características a UMDF 1 y hay compatibilidad limitada con UMDF 1 en versiones más recientes de Windows 10. Los controladores universales de Windows deben usar UMDF 2. Para obtener más información, consulta Introducción con UMDF.
El método SetPropertyData modifica el valor actual de una propiedad de dispositivo.
Sintaxis
HRESULT SetPropertyData(
[in] const DEVPROPKEY *PropertyKey,
[in] LCID Lcid,
[in] ULONG Flags,
[in] DEVPROPTYPE PropertyType,
[in] ULONG PropertyDataSize,
[in, optional] PVOID PropertyData
);
Parámetros
[in] PropertyKey
Puntero a una estructura DEVPROPKEY que especifica la clave de propiedad del dispositivo.
[in] Lcid
Especifica un identificador de configuración regional. Establezca este parámetro en un valor LCID específico del idioma o en LOCALE_NEUTRAL. El LOCALE_NEUTRAL LCID especifica que la propiedad es independiente del idioma (es decir, no específica de ningún idioma). No establezca este parámetro en LOCALE_SYSTEM_DEFAULT o LOCALE_USER_DEFAULT. Para obtener más información sobre los valores LCID específicos del lenguaje, vea LCID Structure.
[in] Flags
Reservado. Los controladores deben establecer este valor en 0.
[in] PropertyType
Puntero a un valor DEVPROPTYPE que especifica el tipo de los datos que se proporcionan en el búfer PropertyData .
[in] PropertyDataSize
Tamaño, en bytes, del búfer al que apunta PropertyData .
[in, optional] PropertyData
Puntero a los datos de la propiedad del dispositivo. Establezca este parámetro en NULL para eliminar la propiedad especificada.
Valor devuelto
SetPropertyData devuelve S_OK si la operación se realiza correctamente. De lo contrario, el método podría devolver los valores siguientes.
Código devuelto | Descripción |
---|---|
|
Error en el intento del marco de trabajo de asignar memoria. |
|
Si el controlador especifica WdfPropertyStoreRootClassDeviceInterfaceKey, la interfaz solicitada debe ser la que el controlador UMDF registró anteriormente. |
|
El controlador solo puede modificar los datos de propiedad de la interfaz del dispositivo a partir de Windows 8. |
Este método puede devolver un valor con tipo HRESULT correspondiente a uno de los otros valores que contiene Winerror.h .
Comentarios
Los controladores basados en marcos usan el método SetPropertyData para modificar las propiedades del dispositivo definidas como parte del modelo de propiedades de dispositivo unificado.
En concreto, puede usar este método para modificar la clave de hardware de un dispositivo o una instancia de una clase de interfaz de dispositivo. Al llamar a IWDFUnifiedPropertyStoreFactory::RetrieveUnifiedDevicePropertyStore, establezca el miembro RootClass del parámetro RootSpecifier en WdfPropertyStoreRootClassHardwareKey o WdfPropertyStoreRootClassDeviceInterfaceKey.
Si especifica WdfPropertyStoreRootClassHardwareKey, al llamar a SetPropertyData, debe proporcionar un valor DEVPROPKEY personalizado en el parámetro PropertyKey y no una clave definida por PnP. El valor debe haberse establecido previamente llamando a SetPropertyData, una función de propiedad de dispositivo SetupDI o mediante la directiva AddProperty inf.
Si el controlador especifica WdfPropertyStoreRootClassDeviceInterfaceKey, la interfaz solicitada debe ser la que el controlador UMDF registró anteriormente en tiempo de ejecución.
Si el controlador registra una interfaz en su archivo INF, también debe establecer las propiedades asociadas en inf.
Para obtener más información sobre el acceso al registro, consulte Uso del Registro en controladores basados en UMDF.
Ejemplos
HRESULT
SetFriendlyName(
_In_ IWDFUnifiedPropertyStore * pUnifiedPropertyStore
)
{
HRESULT hr = S_OK;
WCHAR friendlyName[] = L"UMDF OSR USB Fx2 Test Device";
hr = pUnifiedPropertyStore->SetPropertyData(
&DEVPKEY_Device_FriendlyName,
0, //Lcid
0, //Flags
DEVPROP_TYPE_STRING, //Type
sizeof(friendlyName),
friendlyName
);
if (FAILED(hr))
{
TraceEvents(
TRACE_LEVEL_ERROR,
TEST_TRACE_DEVICE,
"SetPropertyData failed: hr = %!HRESULT!",
hr
);
goto exit;
}
exit:
return hr;
}
Requisitos
Requisito | Value |
---|---|
Finalización del soporte técnico | No disponible en UMDF 2.0 y versiones posteriores. |
Plataforma de destino | Escritorio |
Versión mínima de UMDF | 1.11 |
Encabezado | wudfddi.h |
Archivo DLL | WUDFx.dll |
Consulte también
IWDFUnifiedPropertyStoreFactory