Especificar información de contexto

Configuration Manager proporciona varias maneras para que los controladores de filtrado del registro asignen información de contexto a las operaciones del Registro. Un controlador de filtrado del Registro puede:

  • Asigne información de contexto a la rutina RegistryCallback .

    Cuando el controlador llama a CmRegisterCallback o CmRegisterCallbackEx para registrarse para la notificación de una operación del Registro, el controlador puede especificar un valor de contexto definido por el controlador. El administrador de configuración pasa este valor de contexto a la rutina RegistryCallback del controlador cada vez que el administrador de configuración llama a la rutina.

    Esta información de contexto se admite a partir de Windows XP.

  • Asigne información de contexto a una operación del Registro.

    Los controladores pueden almacenar información de contexto específica de la operación en el miembro CallContext de cada REG_XXX_KEY_INFORMATION estructura que recibe la rutina RegistryCallback del controlador. Si el controlador recibe una notificación previa y una notificación posterior para una operación del Registro, la estructura de REG_POST_OPERATION_INFORMATION contiene un puntero a la estructura de notificación previa adecuada. Cuando una rutina RegistryCallback recibe una estructura REG_POST_OPERATION_INFORMATION , el miembro CallContext de esa estructura coincide con el miembro CallContext de la estructura previa a la notificación.

    El miembro CallContext de estas estructuras está disponible a partir de Windows Vista.

  • Asigne información de contexto a un objeto de clave del Registro.

    Una rutina RegistryCallback puede asignar información de contexto a un objeto de clave del Registro determinado. Si la rutina RegistryCallback llama a CmSetCallbackObjectContext para asignar información de contexto a un objeto de clave, las siguientes notificaciones previas y notificaciones posteriores para todas las operaciones del objeto incluirán el valor de contexto en el miembro ObjectContext de cada estructura REG_XXX_KEY_INFORMATION . Si un controlador proporciona varias rutinas RegistryCallback , el controlador puede asignar información de contexto diferente para cada rutina, para un único objeto de clave del Registro.

    Si un controlador ha llamado a CmSetCallbackObjectContext, la rutina RegistryCallback del controlador recibirá una notificación RegNtCallbackObjectContextCleanup después de cerrar el identificador del objeto de clave. En respuesta a esta notificación, la rutina debe liberar los recursos asignados para el contexto del objeto. Cuando el parámetro Argument1 de la rutina RegistryCallback es RegNtCallbackObjectContextCleanup, el parámetro Argument2 es un puntero a una estructura REG_CALLBACK_CONTEXT_CLEANUP_INFORMATION que contiene un puntero al contexto.

    La rutina CmSetCallbackObjectContext y la notificación RegNtCallbackObjectContextCleanup están disponibles a partir de Windows Vista.