CmCallbackGetKeyObjectID 함수(wdm.h)
CmCallbackGetKeyObjectID 루틴은 지정된 레지스트리 키 개체와 연결된 고유 식별자 및 개체 이름을 검색합니다.
Windows 8 레지스트리 필터 드라이버는 CmCallbackGetKeyObjectID 대신 CmCallbackGetKeyObjectID 루틴을 호출해야 합니다. 자세한 내용은 아래 설명 섹션을 참조하세요.
구문
NTSTATUS CmCallbackGetKeyObjectID(
[in] PLARGE_INTEGER Cookie,
[in] PVOID Object,
[out, optional] PULONG_PTR ObjectID,
[out, optional] PCUNICODE_STRING *ObjectName
);
매개 변수
[in] Cookie
CmRegisterCallback 또는 CmRegisterCallbackEx 루틴을 호출하여 드라이버 가 이전에 가져온 쿠키 값입니다.
[in] Object
REG_XXX_KEY_INFORMATION 구조체 중 하나의 Object 멤버에서 드라이버의 RegistryCallback 콜백 루틴이 받은 포인터 값입니다.
경고
특정 상황에서 레지스트리 콜백 알림 구조에는 잘못된 NULL이 아닌 개체 포인터가 포함될 수 있습니다. 레지스트리 필터링 드라이버는 이러한 포인터를 이 루틴에 전달해서는 안 됩니다. 자세한 내용은 레지스트리 알림의 잘못된 키 개체 포인터를 참조하세요.
[out, optional] ObjectID
Object에서 지정하는 레지스트리 키를 나타내는 고유 식별자에 대한 포인터를 수신하는 위치에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.
[out, optional] ObjectName
UNICODE_STRING 구조체에 대한 포인터를 수신하는 위치에 대한 포인터입니다. 이 구조체에는 Object 에서 지정하는 레지스트리 키 개체의 개체 이름이 포함됩니다. 개체 이름은 실제로 개체가 나타내는 레지스트리 키의 전체 경로 이름입니다. 호출자는 이 UNICODE_STRING 구조에 쓰거나 해제해서는 안 됩니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.
반환 값
CmCallbackGetKeyObjectID 는 작업이 성공하면 STATUS_SUCCESS 반환합니다. 가능한 오류 반환 값에는 다음 상태 코드가 포함됩니다.
반환 코드 | 설명 |
---|---|
STATUS_INVALID_PARAMETER | Cookie 또는 Object 매개 변수가 잘못되었습니다. |
설명
CmCallbackGetKeyObjectID 루틴은 Windows Vista부터 사용할 수 있습니다. 이 루틴의 향상된 버전인 CmCallbackGetKeyObjectIDEx는 Windows 8부터 사용할 수 있습니다. Windows 8 이상 버전의 Windows에서만 실행되는 드라이버는 CmCallbackGetKeyObjectID 대신 CmCallbackGetKeyObjectIDEx를 호출해야 합니다.
드라이버는 CmCallbackGetKeyObjectID를 사용하여 ObjectID 또는 ObjectName 매개 변수에 NULL이 아닌 값을 제공하여 레지스트리 키 식별자, 개체 이름 또는 둘 다를 가져올 수 있습니다.
드라이버가 식별자 또는 이름을 가져온 후에는 드라이버의 RegistryCallback 루틴이 핸들 닫기의 사전 알림을 받을 때까지 식별자 또는 이름이 유효합니다.
드라이버는 개체 이름을 수정하면 안됩니다.
두 레지스트리 키 개체가 동일한 레지스트리 키를 나타내는 경우 두 개체의 키 식별자는 동일합니다.
CmCallbackGetKeyObjectID 및 레지스트리 필터링 작업에 대한 자세한 내용은 레지스트리 호출 필터링을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
헤더 | wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |