Función ZwNotifyChangeKey (ntifs.h)
La rutina ZwNotifyChangeKey permite que un controlador solicite una notificación cuando cambia una clave del Registro.
Sintaxis
NTSYSAPI NTSTATUS ZwNotifyChangeKey(
[in] HANDLE KeyHandle,
[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
);
Parámetros
[in] KeyHandle
Controlar a la clave para registrar una rutina de notificación. Este identificador se crea mediante una llamada correcta a ZwCreateKey o ZwOpenKey. El autor de la llamada debe haber especificado KEY_NOTIFY acceso.
[in, optional] Event
Identificador opcional de un evento creado por el autor de la llamada que se va a establecer en el estado Signaled cuando se completa la operación. Si no es NULL, el autor de la llamada se coloca en un estado de espera hasta que la operación se realiza correctamente, en cuyo momento el evento se establece en el estado Signaled.
[in, optional] ApcRoutine
Puntero a una rutina de APC proporcionada por el autor de la llamada para ejecutarse una vez completada la operación. Este parámetro es opcional y puede ser NULL.
[in, optional] ApcContext
Puntero para pasar como argumento a la rutina de APC a la que ApcRoutine apunta. Este argumento es necesario si ApcRoutine no es NULL y se debe convertir al tipo PVOID. De lo contrario, si ApcRoutine es NULL, establezca este parámetro en NULL también.
El significado de este parámetro depende de si se llama a la rutina desde el modo kernel o desde el modo de usuario:
Para una llamada en modo kernel, establezca este parámetro en uno de los siguientes valores de enumeración de WORK_QUEUE_TYPE:
- CriticalWorkQueue
- DelayedWorkQueue
Para una llamada en modo de usuario, este parámetro apunta a un contexto especificado por el autor de la llamada para la rutina de APC.
[out] IoStatusBlock
Puntero a una estructura de IO_STATUS_BLOCK que contiene el estado final y la información sobre la operación. Para llamadas correctas que devuelven datos, el número de bytes escritos en Búfer se proporciona en IoStatusBlock:>Information.
[in] CompletionFilter
Máscara de bits de las operaciones que hacen que se notifique al controlador. Especifique una o varias de las marcas siguientes:
Valor | Significado |
---|---|
REG_NOTIFY_CHANGE_NAME | Notifique al autor de la llamada si se agrega o elimina una subclave. |
REG_NOTIFY_CHANGE_ATTRIBUTES | Notifique al autor de la llamada los cambios en los atributos de la clave, como la información del descriptor de seguridad. |
REG_NOTIFY_CHANGE_LAST_SET | Notifique al autor de la llamada los cambios en un valor de la clave. Esto puede incluir agregar o eliminar un valor o cambiar un valor existente. (El autor de la llamada no recibe ninguna notificación si el nuevo valor escrito en la clave coincide con el valor anterior de la clave). |
REG_NOTIFY_CHANGE_SECURITY | Notifique al autor de la llamada los cambios en el descriptor de seguridad de la clave. |
[in] WatchTree
Si es TRUE, se notifica al controlador los cambios en todas las subclaves de la clave especificada. Si es FALSE, solo se notifica al controlador los cambios realizados en la clave especificada.
[out, optional] Buffer
Reservado. Especifique NULL.
[in] BufferSize
Reservado. Especifique cero.
[in] Asynchronous
Si es FALSE, la rutina no devuelve hasta que se produce el evento especificado. Si es TRUE, la rutina devuelve inmediatamente.
Valor devuelto
La rutina
Observaciones
Si la llamada a la función ZwNotifyChangeKey se produce en modo de usuario, debe usar el nombre "NtNotifyChangeKey" en lugar de "ZwNotifyChangeKey".
En el caso de las llamadas desde controladores en modo kernel, las NtXxx y Zwversiones de Xxx de una rutina de Servicios del sistema nativo de Windows pueden comportarse de forma diferente en la forma en que controlan e interpretan los parámetros de entrada. Para obtener más información sobre la relación entre las versiones de NtXxx y ZwXxx de una rutina, vea Using Nt and Zw Versions of the Native System Services Routines.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 2000 |
de la plataforma de destino de |
Universal |
encabezado de |
ntifs.h (incluya Ntifs.h) |
biblioteca de |
NtosKrnl.lib |
DLL de |
NtosKrnl.exe |
irQL | PASSIVE_LEVEL |
reglas de cumplimiento de DDI | HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm) |