структура WDF_PROPERTY_STORE_ROOT (wudfddi_types.h)
[Предупреждение: UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. В UMDF 1 новые функции не добавляются, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы Windows должны использовать UMDF 2. Дополнительные сведения см. в разделе начало работы с UMDF.]
Структура WDF_PROPERTY_STORE_ROOT содержит сведения, определяющие хранилище свойств UMDF.
Синтаксис
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;
Члены
LengthCb
Длина этой структуры (в байтах).
RootClass
WDF_PROPERTY_STORE_ROOT_CLASS типизированное значение, идентифицирующее хранилище свойств.
Qualifier
Qualifier.HardwareKey
Qualifier.HardwareKey.ServiceName
Указатель на символьную строку, завершающуюся значением NULL, которая идентифицирует подраздел драйвера в аппаратном разделе устройства в реестре. Дополнительные сведения об этом члене см. в следующем разделе Примечаний.
Qualifier.DeviceInterfaceKey
Qualifier.DeviceInterfaceKey.InterfaceGUID
Указатель на GUID, который идентифицирует интерфейс устройства. Чтобы зарегистрировать интерфейс устройства, драйвер должен ранее вызывать IWDFDevice::CreateDeviceInterface .
Qualifier.DeviceInterfaceKey.ReferenceString
Указатель на символьную строку, завершающуюся значением NULL, которая идентифицирует ссылочные строки для интерфейса устройства. Драйвер должен указать этот член, если он указал строку ссылки при вызове IWDFDevice::CreateDeviceInterface. В противном случае этот элемент должен иметь значение NULL.
Qualifier.LegacyHardwareKey
Qualifier.LegacyHardwareKey.LegacyMapName
Указатель на символьную строку, завершающуюся null, которая определяет подраздел в разделеHKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP в реестре. Этот ключ используется только несколькими старыми драйверами.
Комментарии
Структура WDF_PROPERTY_STORE_ROOT используется в качестве входных данных для IWDFPropertyStoreFactory::RetrieveDevicePropertyStore и IWDFUnifiedPropertyStoreFactory::RetrieveUnifiedDevicePropertyStore.
Хранилища свойств UMDF представляют разделы реестра, к которым могут получить доступ драйверы. Прежде чем драйвер вызовет один из указанных выше методов, он должен инициализировать структуру WDF_PROPERTY_STORE_ROOT . Драйвер должен обнулить структуру, а затем задать для элемента LengthCb длину структуры.
Чтобы открыть программный ключ, драйвер должен:
- Задайте для элемента LengthCb структуры размер структуры.
- Задайте для элемента RootClass структуры значение WdfPropertyStoreRootClassSoftwareKey.
- Задайте для элемента LengthCb структуры размер структуры.
- Задайте для элемента RootClass структуры значение WdfPropertyStoreRootClassHardwareKey.
-
Задайте значение для элемента Qualifier.HardwareKey.ServiceName . Это значение должно иметь одно из следующих значений:
- WDF_PROPERTY_STORE_HARDWARE_KEY_ROOT, чтобы открыть подраздел \Параметры устройства в аппаратном ключе устройства. Драйвер может получить доступ только на чтение к этому подразделу.
- WDF_PROPERTY_STORE_HARDWARE_KEY_DEFAULT, чтобы открыть подраздел, соответствующий имени службы драйвера, в подразделе \Device Parameters . Драйвер может получить доступ на чтение или запись к этому подразделу. Драйвер может при необходимости создать подраздел , если он не существует.
- Предоставленная драйвером строка символов, чтобы открыть подраздел с именем, соответствующим строке символов, в подразделе \Device Parameters . Драйвер может получить доступ на чтение или запись к этому подразделу. Драйвер может при необходимости создать подраздел , если он не существует.
Если драйвер создает подраздел под ключом оборудования устройства, рекомендуется указать WDF_PROPERTY_STORE_HARDWARE_KEY_DEFAULT , так как UMDF создает подраздел, соответствующий имени службы драйвера. Использование этого имени гарантирует, что каждый драйвер создает подраздел с уникальным именем. Драйвер не должен указывать WDF или WUDF в качестве имени подраздела.
- Задайте для элемента LengthCb структуры размер структуры.
- Задайте для элемента RootClass структуры значение WdfPropertyStoreRootClassDeviceInterfaceKey.
- Задайте для элемента Qualifier.DeviceInterfaceKey.InterfaceGUID идентификатор GUID, указанный драйвером для предыдущего вызова IWDFDevice::CreateDeviceInterface.
- Задайте для элемента Qualifier.DeviceInterfaceKey.ReferenceString ссылочной строки, указанной драйвером для предыдущего вызова IWDFDevice::CreateDeviceInterface, или значение NULL , если драйвер не указал ссылочной строки.
Чтобы открыть ключ DEVICEMAP, драйвер должен:
- Задайте для элемента LengthCb структуры размер структуры.
- Задайте для элемента RootClass структуры значение WdfPropertyStoreRootClassLegacyHardwareKey.
- Задайте для элемента Qualifier.LegacyHardwareKey.LegacyMapName символьную строку, указывающую подраздел в разделе HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP в реестре.
Дополнительные сведения об этих разделах реестра см. в статье Использование реестра в драйверах на основе UMDF.
Требования
Требование | Значение |
---|---|
Минимальная версия UMDF | 1,9 |
Верхняя часть | wudfddi_types.h (включая Wudfddi.h) |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по