Partager via


Fonction NtNotifyChangeMultipleKeys (winternl.h)

[Cette fonction peut être modifiée ou supprimée de Windows sans préavis. ]

Demande une notification lorsqu’une clé de Registre ou l’une de ses sous-clés change.

Syntaxe

__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
);

Paramètres

[in] MasterKeyHandle

Handle d’une clé ouverte. Le handle doit être ouvert avec le droit d’accès KEY_NOTIFY .

[in, optional] Count

Nombre de sous-clés sous la clé spécifiée par le paramètre MasterKeyHandle . Ce paramètre doit être 1.

[in, optional] SubordinateObjects

Pointeur vers un tableau de structures OBJECT_ATTRIBUTES , une pour chaque sous-clé. Ce tableau peut contenir une structure OBJECT_ATTRIBUTES .

[in, optional] Event

Handle pour un événement créé par l’appelant. Si Event n’a pas la valeur NULL, l’appelant attend que l’opération aboutisse, date à laquelle l’événement est signalé.

[in, optional] ApcRoutine

Pointeur vers une fonction d’appel de procédure asynchrone (APC) fournie par l’appelant. Si ApcRoutine n’est pas NULL, la fonction APC spécifiée s’exécute une fois l’opération terminée.

[in, optional] ApcContext

Pointeur vers un contexte fourni par l’appelant pour sa fonction APC. Cette valeur est passée à la fonction APC lors de son exécution. Le paramètre Asynchrone doit être TRUE. Si ApcContext est spécifié, le paramètre Event doit être NULL.

[out] IoStatusBlock

Pointeur vers une structure de IO_STATUS_BLOCK qui contient la status finale et des informations sur l’opération. Pour les appels réussis qui retournent des données, le nombre d’octets écrits dans le paramètre Buffer est fourni dans le membre Information de la structure IO_STATUS_BLOCK .

[in] CompletionFilter

Bitmap d’opérations qui déclenchent une notification. Ce paramètre peut être 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é, telles que les informations de 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.
REG_NOTIFY_CHANGE_SECURITY
Informez l’appelant des modifications apportées au descripteur de sécurité de la clé.

[in] WatchTree

Si ce paramètre a la valeur TRUE, l’appelant est averti des modifications apportées à toutes les sous-clés de la clé spécifiée. Si ce paramètre a la valeur FALSE, l’appelant est averti uniquement des modifications apportées à la clé spécifiée.

[out, optional] Buffer

Réservé pour le système. Ce paramètre doit être NULL.

[in] BufferSize

Réservé pour le système. Ce paramètre doit être égal à zéro.

[in] Asynchronous

Si ce paramètre a la valeur TRUE, la fonction retourne immédiatement. Si ce paramètre a la valeur FALSE, la fonction ne retourne pas tant que l’événement spécifié ne se produit pas.

Valeur retournée

Retourne un code d’erreur ou NTSTATUS .

Si le paramètre Asynchrone a la valeur TRUE et que l’événement spécifié ne s’est pas encore produit, la fonction retourne STATUS_PENDING.

Les formes et l’importance des codes d’erreur NTSTATUS sont répertoriées dans le fichier d’en-tête Ntstatus.h disponible dans le WDK et sont décrits dans la documentation WDK.

Remarques

Cette fonction n’a aucun fichier d’en-tête associé. Vous pouvez également utiliser les fonctions LoadLibrary et GetProcAddress pour établir une liaison dynamique vers Ntdll.dll.

Configuration requise

   
Plateforme cible Windows
En-tête winternl.h
Bibliothèque ntdll.lib
DLL ntdll.dll

Voir aussi

Sécurité de la clé de Registre et droits d’accès