Spécification des informations de contexte

Le gestionnaire de configuration fournit plusieurs façons pour les pilotes de filtrage du registre d’affecter des informations de contexte aux opérations de registre. Un pilote de filtrage du Registre peut :

  • Affectez des informations de contexte à la routine RegistryCallback .

    Lorsque votre pilote appelle CmRegisterCallback ou CmRegisterCallbackEx pour s’inscrire à la notification d’une opération de Registre, le pilote peut spécifier une valeur de contexte définie par le pilote. Le gestionnaire de configuration transmet cette valeur de contexte à la routine RegistryCallback du pilote chaque fois que le gestionnaire de configuration appelle la routine.

    Ces informations de contexte sont prises en charge à partir de Windows XP.

  • Attribuer des informations de contexte à une opération de Registre.

    Les pilotes peuvent stocker des informations de contexte spécifiques à l’opération dans le membre CallContext de chaque structure REG_XXX_KEY_INFORMATION que la routine RegistryCallback du pilote reçoit. Si votre pilote reçoit à la fois une pré-notification et une post-notification pour une opération de Registre, la structure REG_POST_OPERATION_INFORMATION contient un pointeur vers la structure de pré-notification appropriée. Lorsqu’une routine RegistryCallback reçoit une structure REG_POST_OPERATION_INFORMATION , le membre CallContext de cette structure correspond au membre CallContext de la structure de pré-notification.

    Le membre CallContext de ces structures est disponible à partir de Windows Vista.

  • Affecter des informations de contexte à un objet de clé de Registre.

    Une routine RegistryCallback peut affecter des informations de contexte à un objet de clé de Registre particulier. Si la routine RegistryCallback appelle CmSetCallbackObjectContext pour affecter des informations de contexte à un objet clé, les pré-notifications et les post-notifications suivantes pour toutes les opérations sur l’objet incluent la valeur de contexte dans le membre ObjectContext de chaque structure REG_XXX_KEY_INFORMATION . Si un pilote fournit plusieurs routines RegistryCallback , il peut affecter des informations de contexte différentes pour chaque routine, pour un seul objet de clé de Registre.

    Si un pilote a appelé CmSetCallbackObjectContext, la routine RegistryCallback du pilote reçoit une notification RegNtCallbackObjectContextCleanup une fois le handle de l’objet clé fermé. En réponse à cette notification, la routine doit libérer toutes les ressources qu’elle a allouées pour le contexte de l’objet. Lorsque le paramètre Argument1 de la routine RegistryCallback est RegNtCallbackObjectContextCleanup, le paramètre Argument2 est un pointeur vers une structure REG_CALLBACK_CONTEXT_CLEANUP_INFORMATION qui contient un pointeur vers le contexte.

    La routine CmSetCallbackObjectContext et la notification RegNtCallbackObjectContextCleanup sont disponibles à partir de Windows Vista.