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

指定用于创建或打开新密钥的键创建例程的选项。 有关详细信息,请参阅 ZwCreateKey 例程的 CreateOptions 参数的说明和 ZwOpenKeyEx 例程的 OpenOptions 参数的说明。

Class

指向 UNICODE_STRING 结构的指针,该结构标识新键的对象类。 有关此成员的详细信息,请参阅 ZwCreateKey 例程的 Class 参数。 此指针值可以为 NULL

SecurityDescriptor

指向包含密钥对象安全信息的 SECURITY_DESCRIPTOR 结构的指针。 此指针是从 OBJECT_ATTRIBUTES 结构的 SecurityDescriptor 成员获取的,该成员在创建新注册表项的调用中作为输入参数传递。

SecurityQualityOfService

指向 SECURITY_QUALITY_OF_SERVICE 结构的指针。 此结构指示服务器是否可以模拟尝试创建注册表项的客户端,如果允许模拟,则表示允许它的范围。

DesiredAccess

尝试创建注册表项的线程指定的访问掩码。 有关此访问掩码的详细信息,请参阅 ZwCreateKey 例程的 DesiredAccess 参数的说明。

GrantedAccess

一个访问掩码,指示授予尝试创建注册表项的线程的访问权限。 有关此成员的详细信息,请参阅以下“备注”部分。

Disposition

一个 值,该值指示请求的注册表操作是创建新项还是打开现有项。 有关此成员的详细信息,请参阅 ZwCreateKey 例程的 Disposition 参数的说明和以下备注部分。

ResultObject

指向位置的指针,该位置接收表示所创建的注册表项的密钥对象的地址。

CallContext

驱动程序的 RegistryCallback 例程可以提供的可选驱动程序定义的上下文信息。

RootObjectContext

指向驱动程序定义的上下文信息的指针,驱动程序通过调用 CmSetCallbackObjectContext 例程与注册表对象的路径根相关联。

Transaction

指向注册表操作的事务对象的指针。 可以提供指向 ObOpenObjectByPointer 例程的此指针,以获取相应的事务句柄。 如果此成员为 NULL,则操作是在非事务上下文中执行的。

Version

结构版本号。 此成员将 Windows Vista 中的 REG_CREATE_KEY_INFORMATION 结构与 Windows 7 及更高版本中的 REG_CREATE_KEY_INFORMATION_V1 结构区分开来。 当前定义了以下版本号。

版本号 结构版本
0 REG_CREATE_KEY_INFORMATION
1 REG_CREATE_KEY_INFORMATION_V1
 

此结构的未来版本可能会添加新成员,但不会更改结构现有版本中已定义的成员。 此成员在 Windows 7 及更高版本的 Windows 操作系统中支持的 REG_CREATE_KEY_INFORMATION_V1 结构中定义。 在 Windows Vista 支持的 REG_CREATE_KEY_INFORMATION 结构中,此成员名为 “保留” ,并设置为零。 筛选器驱动程序应依赖版本号而不是操作系统版本来确定它们所使用的结构版本。

RemainingName

指向包含新注册表项相对路径 的UNICODE_STRING 结构的指针。 此成员始终表示新键的路径,相对于 RootObject 成员指定的键的路径。 相比之下,如果 RootObject 成员指定了 \REGISTRY 键,则 CompleteName 成员可以包含绝对路径。

Wow64Flags

包含访问掩码中的 Wow64 标志,这些标志在调用中作为输入参数传递,以创建新的注册表项。 此成员指示在 64 位版本的 Windows 上运行的 32 位客户端程序是否正在尝试创建注册表项。 此成员设置为零或设置为以下标志位之一:

  • KEY_WOW64_32KEY
  • KEY_WOW64_64KEY
这些标志位在 Wdm.h 和 Winnt.h 头文件中定义。 有关这些标志的详细信息,请参阅 注册表项安全和访问权限

Attributes

包含来自 OBJECT_ATTRIBUTES 结构的 Attributes 成员的对象-特性标志,这些标志在调用中作为输入参数传递,以创建新的注册表项。 此成员可能包含以下一个或多个标志位:

  • OBJ_KERNEL_HANDLE
  • OBJ_FORCE_ACCESS_CHECK
  • OBJ_OPENLINK
有关这些标志的详细信息,请参阅 OBJECT_ATTRIBUTES

CheckAccessMode

指示配置管理器如何执行安全访问检查调用以创建新密钥。 此成员包含 Wdm.h 头文件中的以下 MODE 枚举值之一:

  • KernelMode
  • UserMode
此安全检查类似于 SeAccessCheck 例程执行的操作,后者具有可设置为 UserMode 或 KernelModeAccessMode 参数。 如果将 CheckAccessMode 设置为 UserMode,则配置管理器将检查执行完全安全访问,而不管调用是源自用户模式还是内核模式。 有关如何对源自内核模式的调用强制进行用户模式安全访问检查的详细信息,请参阅 OBJECT_ATTRIBUTES 结构的 Attributes 成员中的 OBJ_FORCE_ACCESS_CHECK 标志的说明。

注解

每当线程尝试创建密钥时,配置管理器都会将此结构传递给 RegistryCallback 例程,例如,当用户模式线程调用 RegCreateKeyRegCreateKeyEx 时,或者当内核模式驱动程序调用 ZwCreateKey 时。

此结构是 Windows Vista 支持的 REG_CREATE_KEY_INFORMATION 结构的扩展版本。 前 14 个成员 (CompleteNameTransaction)在这两个结构中是相同的。 REG_CREATE_KEY_INFORMATION_V1结构的最后五个成员(通过CheckAccessMode 的版本)不属于REG_CREATE_KEY_INFORMATION结构。

如果驱动程序的 RegistryCallback 例程返回 RegNtPreCreateKeyEx 通知STATUS_CALLBACK_BYPASS,则驱动程序必须提供 GrantedAccessDispositionResultObject 成员的值。

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