структура REG_CREATE_KEY_INFORMATION_V1 (wdm.h)
Структура REG_CREATE_KEY_INFORMATION_V1 содержит сведения, которые может использовать подпрограмма RegistryCallback драйвера фильтра при создании раздела реестра.
Синтаксис
typedef struct _REG_CREATE_KEY_INFORMATION_V1 {
PUNICODE_STRING CompleteName;
PVOID RootObject;
PVOID ObjectType;
ULONG Options;
PUNICODE_STRING Class;
PVOID SecurityDescriptor;
PVOID SecurityQualityOfService;
ACCESS_MASK DesiredAccess;
ACCESS_MASK GrantedAccess;
PULONG Disposition;
PVOID *ResultObject;
PVOID CallContext;
PVOID RootObjectContext;
PVOID Transaction;
ULONG_PTR Version;
PUNICODE_STRING RemainingName;
ULONG Wow64Flags;
ULONG Attributes;
KPROCESSOR_MODE CheckAccessMode;
} REG_CREATE_KEY_INFORMATION_V1, REG_OPEN_KEY_INFORMATION_V1, *PREG_CREATE_KEY_INFORMATION_V1, *PREG_OPEN_KEY_INFORMATION_V1;
Члены
CompleteName
Указатель на структуру UNICODE_STRING , содержащую путь к новому разделу реестра. Путь может быть как абсолютным, так и относительным. Если путь является абсолютным, эта структура содержит полный путь, который начинается с символа "\". Для абсолютного пути член RootObject указывает раздел \REGISTRY , который является корневым каталогом дерева реестра. Если путь относительный, путь начинается с символа, отличного от "\", и относительно ключа, заданного элементом RootObject .
RootObject
Указатель на объект раздела реестра, представляющий корневой раздел реестра для пути, указанного в элементе CompleteName .
ObjectType
Этот элемент зарезервирован для использования операционной системой. Драйверы не должны получать доступ к этому элементу.
Options
Задает параметры процедуры создания ключа, используемой для создания или открытия нового ключа. Дополнительные сведения см. в описании параметра CreateOptions подпрограммыZwCreateKey и описании параметра OpenOptions подпрограммыZwOpenKeyEx .
Class
Указатель на структуру UNICODE_STRING , которая определяет класс объектов нового ключа. Дополнительные сведения об этом элементе см. в параметре Class подпрограммы ZwCreateKey . Это значение указателя может иметь значение NULL.
SecurityDescriptor
Указатель на структуру SECURITY_DESCRIPTOR , содержащую сведения о безопасности для объекта ключа. Этот указатель был получен из элемента SecurityDescriptor структуры OBJECT_ATTRIBUTES , который был передан в качестве входного параметра в вызове для создания нового раздела реестра.
SecurityQualityOfService
Указатель на структуру SECURITY_QUALITY_OF_SERVICE . Эта структура указывает, может ли сервер олицетворять клиента, пытающегося создать раздел реестра, и, если олицетворение разрешено, степень, в которой она разрешена.
DesiredAccess
Маска доступа, указанная потоком, который пытается создать раздел реестра. Дополнительные сведения об этой маске доступа см. в описании параметра DesiredAccess подпрограммы ZwCreateKey .
GrantedAccess
Маска доступа, указывающая права доступа, предоставленные потоку, который пытается создать раздел реестра. Дополнительные сведения об этом члене см. в следующем разделе Примечания.
Disposition
Значение типа , указывающее, будет ли запрошенная операция реестра создавать новый раздел или открывать существующий. Дополнительные сведения об этом элементе см. в описании параметра Disposition подпрограммы ZwCreateKey и в следующем разделе Примечания.
ResultObject
Указатель на расположение, которое получает адрес объекта ключа, представляющего созданный раздел реестра.
CallContext
Необязательные сведения о контексте, определяемые драйвером, которые может предоставить подпрограмма RegistryCallback драйвера.
RootObjectContext
Указатель на определяемые драйвером контекстные сведения, связанные драйвером с корнем пути к объекту реестра путем вызова подпрограммы CmSetCallbackObjectContext .
Transaction
Указатель на объект транзакции для операции реестра. Этот указатель можно указать в подпрограмму ObOpenObjectByPointer , чтобы получить соответствующий дескриптор транзакции. Если этот элемент имеет значение NULL, операция выполняется в нетранзакционном контексте.
Version
Номер версии структуры. Этот элемент отличает структуру REG_CREATE_KEY_INFORMATION в Windows Vista от структуры REG_CREATE_KEY_INFORMATION_V1 в Windows 7 и более поздних версиях Windows. В настоящее время определены следующие номера версий.
номер версии; | Версия структуры |
---|---|
0 | REG_CREATE_KEY_INFORMATION |
1 | REG_CREATE_KEY_INFORMATION_V1 |
В будущих версиях этой структуры могут добавляться новые члены, но не будут изменяться элементы, которые уже определены в существующих версиях структуры. Этот элемент определен в структуре REG_CREATE_KEY_INFORMATION_V1 , которая поддерживается в Windows 7 и более поздних версиях операционных систем Windows. В структуре REG_CREATE_KEY_INFORMATION , которую поддерживает Windows Vista, этот элемент называется Зарезервирован и имеет значение 0. Драйверы фильтров должны полагаться на номер версии, а не версию операционной системы, чтобы определить, какую версию структуры они используют.
RemainingName
Указатель на структуру UNICODE_STRING , содержащую относительный путь к новому разделу реестра. Этот элемент всегда выражает путь к новому ключу относительно пути ключа, заданного элементом RootObject . В отличие от этого, элемент CompleteName может содержать абсолютный путь, если элемент RootObject указывает раздел \REGISTRY .
Wow64Flags
Содержит флаги Wow64 из маски доступа, которые были переданы в качестве входного параметра в вызове для создания нового раздела реестра. Этот элемент указывает, пытается ли 32-разрядная клиентская программа, работающая в 64-разрядной версии Windows, создать раздел реестра. Для этого элемента задано значение ноль или один из следующих битов флага:
- KEY_WOW64_32KEY
- KEY_WOW64_64KEY
Attributes
Содержит флаги объект-атрибут из элемента Attributes структуры OBJECT_ATTRIBUTES , который был передан в качестве входного параметра в вызове для создания нового раздела реестра. Этот элемент может содержать один или несколько из следующих битов флага:
- OBJ_KERNEL_HANDLE
- OBJ_FORCE_ACCESS_CHECK
- OBJ_OPENLINK
CheckAccessMode
Указывает, как диспетчер конфигурации выполняет проверка доступа к безопасности для вызова для создания нового ключа. Этот элемент содержит одно из следующих значений перечисления MODE из файла заголовка Wdm.h:
- KernelMode
- UserMode
Комментарии
Диспетчер конфигурации передает эту структуру подпрограмме RegistryCallback каждый раз, когда поток пытается создать ключ, например, когда поток пользовательского режима вызывает RegCreateKey или RegCreateKeyEx или драйвер режима ядра вызывает ZwCreateKey.
Эта структура является расширенной версией структуры REG_CREATE_KEY_INFORMATION , которую поддерживает Windows Vista. Первые 14 элементов, CompleteName через Transaction, идентичны в двух структурах. Последние пять элементов структуры REG_CREATE_KEY_INFORMATION_V1 , version through CheckAccessMode, не являются частью структуры REG_CREATE_KEY_INFORMATION .
Если подпрограмма RegistryCallback драйвера возвращает STATUS_CALLBACK_BYPASS для уведомления RegNtPreCreateKeyEx , драйвер должен указать значения для элементов GrantedAccess, Disposition и ResultObject .
Структура REG_CREATE_KEY_INFORMATION_V1 является одной из нескольких структур, которые драйвер фильтра может получить через свою подпрограмму RegistryCallback . Дополнительные сведения об операциях фильтрации реестра см. в разделе Фильтрация вызовов реестра.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows 7 и более поздних версиях операционных систем Windows. |
Верхняя часть | wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h) |