ZwNotifyChangeKey, fonction (ntifs.h)
La routine ZwNotifyChangeKey permet à un pilote de demander une notification lorsqu’une clé de Registre change.
Syntaxe
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
);
Paramètres
[in] KeyHandle
Gérez la clé pour inscrire une routine de notification. Ce handle est créé par un appel réussi à ZwCreateKey ou ZwOpenKey. L’appelant doit avoir spécifié l’accès KEY_NOTIFY.
[in, optional] Event
Handle facultatif pour un événement créé par l’appelant à définir l’état Signaled une fois l’opération terminée. S’il n’est pas NULL, l’appelant est placé dans un état d’attente jusqu’à ce que l’opération réussisse, auquel moment l’événement est défini sur l’état Signaled.
[in, optional] ApcRoutine
Pointeur vers une routine APC fournie par l’appelant pour s’exécuter une fois l’opération terminée. Ce paramètre est facultatif et peut être NULL.
[in, optional] ApcContext
Pointeur vers lequel passer en tant qu’argument à la routine APC qui ApcRoutine pointe vers. Cet argument est requis si ApcRoutine n’est pas NULL et doit être converti en type PVOID. Sinon, si ApcRoutine a la valeur NULL, définissez également ce paramètre sur NULL.
La signification de ce paramètre dépend de l’appel de la routine à partir du mode noyau ou du mode utilisateur :
Pour un appel en mode noyau, définissez ce paramètre sur l’une des valeurs d’énumération WORK_QUEUE_TYPE suivantes :
- CriticalWorkQueue
- DelayedWorkQueue
Pour un appel en mode utilisateur, ce paramètre pointe vers un contexte spécifié par l’appelant pour la routine APC.
[out] IoStatusBlock
Pointeur vers une structure IO_STATUS_BLOCK qui contient l’état final et les informations relatives à l’opération. Pour les appels réussis qui retournent des données, le nombre d’octets écrits dans tampon est fourni dans IoStatusBlock ->Information.
[in] CompletionFilter
Masque de bits des opérations qui provoquent la notification du pilote. Spécifiez un ou plusieurs des indicateurs suivants :
Valeur | Signification |
---|---|
REG_NOTIFY_CHANGE_NAME | Informez l’appelant si une sous-clé est ajoutée ou supprimée. |
REG_NOTIFY_CHANGE_ATTRIBUTES | Informez l’appelant des modifications apportées aux attributs de la clé, tels que les informations du descripteur de sécurité. |
REG_NOTIFY_CHANGE_LAST_SET | Informez l’appelant des modifications apportées à une valeur de la clé. Cela peut inclure l’ajout ou la suppression d’une valeur ou la modification d’une valeur existante. (L’appelant ne reçoit aucune notification si la nouvelle valeur écrite dans la clé correspond à la valeur précédente de la clé.) |
REG_NOTIFY_CHANGE_SECURITY | Informez l’appelant des modifications apportées au descripteur de sécurité de la clé. |
[in] WatchTree
Si la valeur est TRUE, le pilote est averti des modifications apportées à toutes les sous-clés de la clé spécifiée. Si la valeur est FALSE, le pilote est averti uniquement des modifications apportées à la clé spécifiée.
[out, optional] Buffer
Réservé. Spécifiez NULL.
[in] BufferSize
Réservé. Spécifiez zéro.
[in] Asynchronous
Si la valeur est FALSE, la routine ne retourne pas tant que l’événement spécifié n’a pas lieu. Si la valeur est TRUE, la routine retourne immédiatement.
Valeur de retour
La routine ZwNotifyChangeKey retourne STATUS_SUCCESS sur la réussite, ou la valeur NTSTATUS appropriée dans le cas contraire. Si l’appelant spécifie TRUE pour le paramètre de asynchrone
Remarques
Si l’appel à la fonction ZwNotifyChangeKey se produit en mode utilisateur, vous devez utiliser le nom «NtNotifyChangeKey» au lieu de «ZwNotifyChangeKey».
Pour les appels à partir de pilotes en mode noyau, les versions NtXxx et ZwXxx d’une routine Windows Native System Services peuvent se comporter différemment de la façon dont elles gèrent et interprètent les paramètres d’entrée. Pour plus d’informations sur la relation entre les versions NtXxx et ZwXxx d’une routine, consultez Using Nt and Zw Versions of the Native System Services Routines.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 2000 |
plateforme cible | Universel |
d’en-tête | ntifs.h (include Ntifs.h) |
bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
règles de conformité DDI | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |