NtNotifyChangeMultipleKeys 函数 (winternl.h)

[此函数可能会更改或从 Windows 中删除,而无需进一步通知。 ]

当注册表项或其任何子项发生更改时请求通知。

语法

__kernel_entry NTSTATUS NtNotifyChangeMultipleKeys(
  [in]            HANDLE               MasterKeyHandle,
  [in, optional]  ULONG                Count,
  [in, optional]  OBJECT_ATTRIBUTES [] SubordinateObjects,
  [in, optional]  HANDLE               Event,
  [in, optional]  PIO_APC_ROUTINE      ApcRoutine,
  [in, optional]  PVOID                ApcContext,
  [out]           PIO_STATUS_BLOCK     IoStatusBlock,
  [in]            ULONG                CompletionFilter,
  [in]            BOOLEAN              WatchTree,
  [out, optional] PVOID                Buffer,
  [in]            ULONG                BufferSize,
  [in]            BOOLEAN              Asynchronous
);

参数

[in] MasterKeyHandle

打开的键的句柄。 必须使用 KEY_NOTIFY 访问权限打开句柄。

[in, optional] Count

MasterKeyHandle 参数指定的键下的子项数。 此参数必须为 1。

[in, optional] SubordinateObjects

指向 OBJECT_ATTRIBUTES 结构的数组的指针,每个子项对应一个。 此数组可以包含一个 OBJECT_ATTRIBUTES 结构。

[in, optional] Event

调用方创建的事件的句柄。 如果 Event 不为 NULL,则调用方将等待操作成功,此时会发出事件信号。

[in, optional] ApcRoutine

指向调用方提供的 APC) 函数 (异步过程调用的指针。 如果 ApcRoutine 不为 NULL,则指定的 APC 函数在操作完成后执行。

[in, optional] ApcContext

指向调用方为其 APC 函数提供的上下文的指针。 此值在执行时传递给 APC 函数。 异步参数必须为 TRUE。 如果指定 了 ApcContext则 Event 参数必须为 NULL

[out] IoStatusBlock

指向包含最终状态和操作相关信息 的IO_STATUS_BLOCK 结构的指针。 对于返回数据的成功调用,在 IO_STATUS_BLOCK 结构的 Information 成员中提供写入 Buffer 参数的字节数。

[in] CompletionFilter

触发通知的操作的位图。 此参数可以是以下一个或多个标志。

含义
REG_NOTIFY_CHANGE_NAME
通知调用方是添加还是删除了子项。
REG_NOTIFY_CHANGE_ATTRIBUTES
向调用方通知项属性(例如安全描述符信息)的更改。
REG_NOTIFY_CHANGE_LAST_SET
向调用方通知项值的更改。 这包括添加或删除值,或更改现有值。
REG_NOTIFY_CHANGE_SECURITY
向调用方通知项的安全描述符的更改。

[in] WatchTree

如果此参数为 TRUE,则会通知调用方指定键的所有子项发生更改。 如果此参数为 FALSE,则仅通知调用方对指定密钥的更改。

[out, optional] Buffer

预留给系统使用。 此参数必须为 NULL

[in] BufferSize

预留给系统使用。 此参数必须为零。

[in] Asynchronous

如果此参数为 TRUE,则函数将立即返回。 如果此参数为 FALSE,则函数在发生指定事件之前不会返回 。

返回值

返回 NTSTATUS 或错误代码。

如果 异步 参数为 TRUE 且指定的事件尚未发生,则函数将返回 STATUS_PENDING

NTSTATUS 错误代码的形式和意义列在 WDK 中提供的 Ntstatus.h 头文件中,并在 WDK 文档中介绍。

注解

此函数没有关联的头文件。 还可以使用 LoadLibraryGetProcAddress 函数动态链接到 Ntdll.dll。

要求

   
目标平台 Windows
标头 winternl.h
Library ntdll.lib
DLL ntdll.dll

另请参阅

注册表项安全和访问权限