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
E_OUTOFMEMORY
Error en el intento del marco de trabajo de asignar memoria.
HRESULT_FROM_WIN32 (ERROR_INVALID_PARAMETER)
Si el controlador especifica WdfPropertyStoreRootClassDeviceInterfaceKey, la interfaz solicitada debe ser la que el controlador UMDF registró anteriormente.
HRESULT_FROM_WIN32 (STATUS_NOT_SUPPORTED)
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

GetPropertyData

IWDFUnifiedPropertyStore

IWDFUnifiedPropertyStoreFactory

RetrieveUnifiedDevicePropertyStore

WDF_PROPERTY_STORE_ROOT

WDF_PROPERTY_STORE_ROOT_CLASS