컨텍스트 정보 지정
구성 관리자는 레지스트리 필터링 드라이버가 레지스트리 작업에 컨텍스트 정보를 할당하는 여러 가지 방법을 제공합니다. 레지스트리 필터링 드라이버는 다음을 수행할 수 있습니다.
RegistryCallback 루틴에 컨텍스트 정보를 할당합니다.
드라이버 가 CmRegisterCallback 또는 CmRegisterCallbackEx 를 호출하여 레지스트리 작업 알림을 등록하는 경우 드라이버는 드라이버 정의 컨텍스트 값을 지정할 수 있습니다. 구성 관리자는 구성 관리자가 루틴을 호출할 때마다 드라이버의 RegistryCallback 루틴에 이 컨텍스트 값을 전달합니다.
이 컨텍스트 정보는 Windows XP부터 지원됩니다.
레지스트리 작업에 컨텍스트 정보를 할당합니다.
드라이버는 드라이버의 RegistryCallback 루틴이 수신하는 각 REG_XXX_KEY_INFORMATION 구조의 CallContext 멤버에 작업별 컨텍스트 정보를 저장할 수 있습니다. 드라이버가 레지스트리 작업에 대한 사전 알림 및 사후 알림을 모두 수신하는 경우 REG_POST_OPERATION_INFORMATION 구조에는 적절한 사전 알림 구조에 대한 포인터가 포함됩니다. RegistryCallback 루틴이 REG_POST_OPERATION_INFORMATION 구조를 수신하면 해당 구조체의 CallContext 멤버가 사전 알림 구조의 CallContext 멤버와 일치합니다.
이러한 구조체의 CallContext 멤버는 Windows Vista부터 사용할 수 있습니다.
레지스트리 키 개체에 컨텍스트 정보를 할당합니다.
RegistryCallback 루틴은 특정 레지스트리 키 개체에 컨텍스트 정보를 할당할 수 있습니다. RegistryCallback 루틴이 CmSetCallbackObjectContext를 호출하여 키 개체에 컨텍스트 정보를 할당하는 경우 개체의 모든 작업에 대한 후속 사전 알림 및 사후 알림에는 각 REG_XXX_KEY_INFORMATION 구조체의 ObjectContext 멤버에 컨텍스트 값이 포함됩니다. 드라이버가 여러 RegistryCallback 루틴을 제공하는 경우 드라이버는 단일 레지스트리 키 개체에 대해 각 루틴에 대해 서로 다른 컨텍스트 정보를 할당할 수 있습니다.
드라이버가 CmSetCallbackObjectContext를 호출한 경우 드라이버의 RegistryCallback 루틴은 키 개체의 핸들이 닫힌 후 RegNtCallbackObjectContextCleanup 알림을 받습니다. 이 알림에 대한 응답으로 루틴은 개체의 컨텍스트에 할당된 모든 리소스를 해제해야 합니다. RegistryCallback 루틴에 대한 Argument1 매개 변수가 RegNtCallbackObjectContextCleanup인 경우 Argument2 매개 변수는 컨텍스트에 대한 포인터를 포함하는 REG_CALLBACK_CONTEXT_CLEANUP_INFORMATION 구조체에 대한 포인터입니다.
CmSetCallbackObjectContext 루틴 및 RegNtCallbackObjectContextCleanup 알림은 Windows Vista부터 사용할 수 있습니다.