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 멤버에서 이 포인터를 가져옵니다.

[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

추가 정보

CmRegisterCallbackEx

CmUnRegisterCallback

REG_CREATE_KEY_INFORMATION

REG_CREATE_KEY_INFORMATION_V1

RegistryCallback