CmSetCallbackObjectContext 함수(wdm.h)
CmSetCallbackObjectContext 루틴은 새 컨텍스트 정보를 지정된 레지스트리 개체 및 콜백 루틴과 연결합니다.
구문
NTSTATUS CmSetCallbackObjectContext(
[in, out] PVOID Object,
[in] PLARGE_INTEGER Cookie,
[in] PVOID NewContext,
[out, optional] PVOID *OldContext
);
매개 변수
[in, out] Object
드라이버가 컨텍스트 정보를 제공하는 레지스트리 키 개체에 대한 포인터입니다. 드라이버는 다음 구조체 중 하나의 ResultObject 멤버에서 이 포인터를 가져옵니다.
REG_OPEN_KEY_INFORMATION
REG_OPEN_KEY_INFORMATION_V1
[in] Cookie
컨텍스트를 연결할 콜백 루틴을 식별하는 LARGE_INTEGER 값에 대한 포인터입니다. 콜백 루틴을 등록할 때 CmRegisterCallbackEx 루틴에서 이 값을 제공했습니다.
[in] NewContext
드라이버 정의 컨텍스트 정보에 대한 포인터입니다.
[out, optional] OldContext
드라이버가 이전에 지정된 개체 및 쿠키와 연결한 컨텍스트 정보에 대한 포인터를 수신하는 위치에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.
반환 값
CmSetCallbackObjectContext 는 STATUS_SUCCESS 또는 다른 적절한 NTSTATUS 형식 값을 반환합니다.
설명
CmSetCallbackObjectContext 루틴은 Windows Vista부터 사용할 수 있습니다.
드라이버의 RegistryCallback 루틴은 개체를 만들거나 연 후 모든 레지스트리 키 개체에 대해 CmSetCallbackObjectContext 를 호출할 수 있습니다(즉, 만들기 작업에 대한 사후 알림, 열린 작업 또는 핸들 닫기 사전 알림까지의 후속 알림 중).
드라이버가 CmSetCallbackObjectContext를 호출하는 경우 드라이버의 RegistryCallback 루틴은 키 개체의 핸들이 닫힌 후 또는 드라이버가 CmUnRegisterCallback을 호출하여 RegistryCallback 루틴의 등록을 취소한 후 RegNtCallbackObjectContextCleanup 알림을 받습니다. RegistryCallback 루틴이 이 알림을 받으면 루틴은 개체의 컨텍스트에 할당된 모든 리소스를 해제해야 합니다.
RegNtCallbackObjectContextCleanup 알림 전에 CmSetCallbackObjectContext가 호출되는 경우에도 다른 알림을 수신하는 RegistryCallback에서 OldContext를 참조할 수 있습니다. RegNtCallbackObjectContextCleanup 알림 전에 OldContext를 해제하면 안 됩니다.
CmSetCallbackObjectContext 및 레지스트리 작업 필터링에 대한 자세한 내용은 레지스트리 호출 필터링을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista부터 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |