структура 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
Эти биты флагов определяются в файлах заголовков Wdm.h и Winnt.h. Дополнительные сведения об этих флагах см. в разделе Безопасность раздела реестра и права доступа.

Attributes

Содержит флаги объект-атрибут из элемента Attributes структуры OBJECT_ATTRIBUTES , который был передан в качестве входного параметра в вызове для создания нового раздела реестра. Этот элемент может содержать один или несколько из следующих битов флага:

  • OBJ_KERNEL_HANDLE
  • OBJ_FORCE_ACCESS_CHECK
  • OBJ_OPENLINK
Дополнительные сведения об этих флагах см. в разделе OBJECT_ATTRIBUTES.

CheckAccessMode

Указывает, как диспетчер конфигурации выполняет проверка доступа к безопасности для вызова для создания нового ключа. Этот элемент содержит одно из следующих значений перечисления MODE из файла заголовка Wdm.h:

  • KernelMode
  • UserMode
Эта проверка безопасности аналогична процедуре SeAccessCheck, которая имеет параметр AccessMode, для которого можно задать значение UserMode или KernelMode. Если параметр CheckAccessMode имеет значение UserMode, диспетчер конфигурации выполняет полный доступ к безопасности проверка независимо от того, был ли вызов выполнен в пользовательском режиме или режиме ядра. Дополнительные сведения о принудительной проверке доступа в пользовательском режиме для вызова, который выполняется в режиме ядра, см. в описании флага OBJ_FORCE_ACCESS_CHECK в элементе Атрибуты структуры OBJECT_ATTRIBUTES .

Комментарии

Диспетчер конфигурации передает эту структуру подпрограмме 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)

См. также раздел

CmSetCallbackObjectContext

OBJECT_ATTRIBUTES

ObOpenObjectByPointer

REG_CREATE_KEY_INFORMATION

RegCreateKey

RegCreateKeyEx

RegistryCallback

SECURITY_DESCRIPTOR

SECURITY_QUALITY_OF_SERVICE

UNICODE_STRING

ZwCreateKey