Поделиться через


Функция 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 , содержащую окончательное состояние и сведения об операции. Для успешных вызовов, возвращающих данные, число байтов, записанных в параметр Buffer , предоставляется в элементе Information структуры IO_STATUS_BLOCK .

[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 перечислены в файле заголовка Ntstatus.h, доступном в WDK, и описаны в документации по WDK.

Комментарии

У этой функции нет связанного файла заголовка. Вы также можете использовать функции LoadLibrary и GetProcAddress для динамической связи с Ntdll.dll.

Требования

   
Целевая платформа Windows
Header winternl.h
Библиотека ntdll.lib
DLL ntdll.dll

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

Безопасность раздела реестра и права доступа