ZwQueryValueKey 함수(wdm.h)
ZwQueryValueKey 루틴은 레지스트리 키에 대한 값 항목을 반환합니다.
구문
NTSYSAPI NTSTATUS ZwQueryValueKey(
[in] HANDLE KeyHandle,
[in] PUNICODE_STRING ValueName,
[in] KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
[out, optional] PVOID KeyValueInformation,
[in] ULONG Length,
[out] PULONG ResultLength
);
매개 변수
[in] KeyHandle
값 항목을 읽을 키에 대한 핸들입니다. 이 핸들은 ZwCreateKey 또는 ZwOpenKey를 성공적으로 호출하여 만듭니다.
[in] ValueName
데이터를 가져올 값 항목의 이름에 대한 포인터입니다.
[in] KeyValueInformationClass
KeyValueInformation 버퍼에서 반환되는 정보의 형식을 결정하는 KEY_VALUE_INFORMATION_CLASS 값입니다.
[out, optional] KeyValueInformation
요청된 정보를 수신하는 호출자가 할당한 버퍼에 대한 포인터입니다.
[in] Length
KeyValueInformation 버퍼의 크기(바이트)를 지정합니다.
[out] ResultLength
키 정보의 크기(바이트)를 수신하는 변수에 대한 포인터입니다. ZwQueryValueKey 루틴이 STATUS_SUCCESS 반환하는 경우 호출자는 이 변수의 값을 사용하여 반환되는 데이터의 양을 결정할 수 있습니다. 루틴이 STATUS_BUFFER_OVERFLOW 또는 STATUS_BUFFER_TOO_SMALL 반환하는 경우 호출자는 이 변수의 값을 사용하여 키 정보를 보유하는 데 필요한 버퍼 크기를 결정할 수 있습니다.
반환 값
ZwQueryValueKey 는 성공 시 STATUS_SUCCESS 반환하거나 실패 시 적절한 오류 코드를 반환합니다. 가능한 오류 코드 값은 다음과 같습니다.
반환 코드 | 설명 |
---|---|
STATUS_OBJECT_NAME_NOT_FOUND | 레지스트리 값을 사용할 수 없습니다. |
STATUS_BUFFER_OVERFLOW | 제공된 버퍼가 너무 작고 부분 데이터만 버퍼에 기록되었습니다. ResultLength 는 요청된 정보를 보유하는 데 필요한 최소 크기로 설정됩니다. |
STATUS_BUFFER_TOO_SMALL | 제공된 버퍼가 너무 작아서 버퍼에 데이터가 기록되지 않았습니다. ResultLength 는 요청된 정보를 보유하는 데 필요한 최소 크기로 설정됩니다. |
STATUS_INVALID_PARAMETER | KeyInformationClass 매개 변수가 유효한 KEY_VALUE_INFORMATION_CLASS 값이 아닙니다. |
설명
ZwQueryValueKey에 전달된 KeyHandle은 KEY_QUERY_VALUE 액세스 권한으로 열렸어야 합니다. 이 작업은 KEY_QUERY_VALUE, KEY_READ 또는 KEY_ALL_ACCESS DesiredAccess 매개 변수로 ZwCreateKey 또는 ZwOpenKey 에 전달하여 수행 됩니다.
레지스트리 키 작업에 대한 자세한 내용은 드라이버에서 레지스트리 사용을 참조하세요.
이 함수에 대한 호출이 사용자 모드에서 발생하는 경우 "ZwQueryValueKey" 대신 "NtQueryValueKey"라는 이름을 사용해야 합니다. 커널 모드 드라이버에서 호출하는 경우 Windows 네이티브 시스템 서비스 루틴의 NtXxx 및 ZwXxx 버전은 입력 매개 변수를 처리하고 해석하는 방식으로 다르게 동작할 수 있습니다. 루틴의 NtXxx 버전과 ZwXxx 버전 간의 관계에 대한 자세한 내용은 네이티브 시스템 서비스 루틴의 Nt 및 Zw 버전 사용을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
헤더 | wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 규정 준수 규칙 | HwStorPortProhibitedDDIs(storport), IrqlZwPassive(wdm), PowerIrpDDis(wdm), ZwRegistryCreate(storport), ZwRegistryCreate(storport), ZwRegistryCreate(wdm), ZwRegistryOpen(storport), ZwRegistryOpen(storport), ZwRegistryOpen(wdm) |