Compartir a través de


estructura WDF_PROPERTY_STORE_ROOT (wudfddi_types.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.

La estructura WDF_PROPERTY_STORE_ROOT contiene información que identifica un almacén de propiedades UMDF.

Sintaxis

typedef struct _WDF_PROPERTY_STORE_ROOT {
  ULONG                         LengthCb;
  WDF_PROPERTY_STORE_ROOT_CLASS RootClass;
  union {
    struct {
      PCWSTR ServiceName;
    } HardwareKey;
    struct {
      LPCGUID InterfaceGUID;
      PCWSTR  ReferenceString;
    } DeviceInterfaceKey;
    struct {
      PCWSTR LegacyMapName;
    } LegacyHardwareKey;
  } Qualifier;
} WDF_PROPERTY_STORE_ROOT, *PWDF_PROPERTY_STORE_ROOT;

Miembros

LengthCb

Longitud, en bytes, de esta estructura.

RootClass

Valor de tipo WDF_PROPERTY_STORE_ROOT_CLASS que identifica un almacén de propiedades.

Qualifier

Qualifier.HardwareKey

Qualifier.HardwareKey.ServiceName

Puntero a una cadena de caracteres terminada en NULL que identifica una subclave específica del controlador en la clave de hardware de un dispositivo en el Registro. Para obtener más información sobre este miembro, vea la siguiente sección Comentarios.

Qualifier.DeviceInterfaceKey

Qualifier.DeviceInterfaceKey.InterfaceGUID

Puntero a un GUID que identifica una interfaz de dispositivo. El controlador debe haber llamado previamente A IWDFDevice::CreateDeviceInterface para registrar la interfaz del dispositivo.

Qualifier.DeviceInterfaceKey.ReferenceString

Puntero a una cadena de caracteres terminada en NULL que identifica una cadena de referencia para una interfaz de dispositivo. El controlador debe especificar este miembro si especificó una cadena de referencia cuando llamó a IWDFDevice::CreateDeviceInterface. De lo contrario, este miembro debe ser NULL.

Qualifier.LegacyHardwareKey

Qualifier.LegacyHardwareKey.LegacyMapName

Puntero a una cadena de caracteres terminada en NULL que identifica una subclave bajo la clave HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP del Registro. Esta clave la usan solo algunos controladores más antiguos.

Comentarios

La estructura WDF_PROPERTY_STORE_ROOT se usa como entrada para IWDFPropertyStoreFactory::RetrieveDevicePropertyStore e IWDFUnifiedPropertyStoreFactory::RetrieveUnifiedDevicePropertyStore.

Los almacenes de propiedades de UMDF representan claves del Registro a las que pueden acceder los controladores. Antes de que el controlador llame a uno de los métodos anteriores, debe inicializar la estructura WDF_PROPERTY_STORE_ROOT . El controlador debe tener cero la estructura y, a continuación, establecer el miembro LengthCb en la longitud de la estructura.

Para abrir una clave de software, el controlador debe:

  1. Establezca el miembro LengthCb de la estructura en el tamaño de la estructura.
  2. Establezca el miembro RootClass de la estructura en WdfPropertyStoreRootClassSoftwareKey.
Para abrir la clave de hardware de un dispositivo, el controlador debe:
  1. Establezca el miembro LengthCb de la estructura en el tamaño de la estructura.
  2. Establezca el miembro RootClass de la estructura en WdfPropertyStoreRootClassHardwareKey.
  3. Establezca un valor para el miembro Qualifier.HardwareKey.ServiceName . Este valor debe ser uno de los siguientes:
    • WDF_PROPERTY_STORE_HARDWARE_KEY_ROOT, para abrir la subclave \Device Parameters en la clave de hardware del dispositivo. El controlador solo puede obtener acceso de lectura a esta subclave.
    • WDF_PROPERTY_STORE_HARDWARE_KEY_DEFAULT, para abrir una subclave que coincida con el nombre del servicio del controlador, en la subclave \Parámetros del dispositivo . El controlador puede obtener acceso de lectura o escritura a esta subclave. Opcionalmente, el controlador puede crear la subclave si no existe.
    • Una cadena de caracteres proporcionada por el controlador, para abrir una subclave con un nombre que coincida con la cadena de caracteres, en la subclave \Device Parameters . El controlador puede obtener acceso de lectura o escritura a esta subclave. Opcionalmente, el controlador puede crear la subclave si no existe.

    Si el controlador crea una subclave en la clave de hardware de un dispositivo, es mejor especificar WDF_PROPERTY_STORE_HARDWARE_KEY_DEFAULT porque UMDF crea una subclave que coincide con el nombre del servicio del controlador. El uso de este nombre garantiza que cada controlador cree una subclave con nombre único. El controlador no debe especificar WDF o WUDF como nombre de subclave.

Para abrir una clave de interfaz de dispositivo, el controlador debe:
  1. Establezca el miembro LengthCb de la estructura en el tamaño de la estructura.
  2. Establezca el miembro RootClass de la estructura en WdfPropertyStoreRootClassDeviceInterfaceKey.
  3. Establezca el miembro Qualifier.DeviceInterfaceKey.InterfaceGUID en el GUID que el controlador especificó en una llamada anterior a IWDFDevice::CreateDeviceInterface.
  4. Establezca el miembro Qualifier.DeviceInterfaceKey.ReferenceString en la cadena de referencia que el controlador especificó en una llamada anterior a IWDFDevice::CreateDeviceInterface o NULL si el controlador no especificó una cadena de referencia.
El controlador puede obtener acceso de lectura o escritura a la clave de interfaz del dispositivo.

Para abrir la clave DEVICEMAP, el controlador debe:

  1. Establezca el miembro LengthCb de la estructura en el tamaño de la estructura.
  2. Establezca el miembro RootClass de la estructura en WdfPropertyStoreRootClassLegacyHardwareKey.
  3. Establezca el miembro Qualifier.LegacyHardwareKey.LegacyMapName en una cadena de caracteres que especifique una subclave bajo la clave HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP del Registro.
El controlador puede obtener acceso de lectura o escritura a la subclave especificada en la clave DEVICEMAP . Opcionalmente, el controlador puede crear la subclave si no existe. Sin embargo, un controlador que crea esta subclave debe especificar la marca WdfPropertyStoreCreateVolatile para que el sistema elimine la subclave cada vez que se reinicie.

Para obtener más información sobre estas claves del Registro, consulte Uso del Registro en controladores basados en UMDF.

Requisitos

Requisito Value
Versión mínima de UMDF 1,9
Encabezado wudfddi_types.h (incluya Wudfddi.h)

Consulte también

IWDFPropertyStoreFactory::RetrieveDevicePropertyStore