IRegistryKey::QueryKey 메서드(portcls.h)
QueryKey
메서드는 키 이름, 키 클래스, 하위 키 수 및 해당 크기를 포함하여 레지스트리 키에 대한 정보를 검색합니다.
통사론
NTSTATUS QueryKey(
[in] KEY_INFORMATION_CLASS KeyInformationClass,
[out] PVOID KeyInformation,
[in] ULONG Length,
[out] PULONG ResultLength
);
매개 변수
[in] KeyInformationClass
버퍼에 반환할 정보의 형식을 지정합니다. 이 매개 변수를 다음 KEY_INFORMATION_CLASS 열거형 값 중 하나로 설정합니다.
- keyBasicInformation
- KeyFullInformation
- keyNodeInformation
[out] KeyInformation
메서드가 요청된 데이터를 쓰는 호출자 할당 버퍼에 대한 포인터입니다. 버퍼는 KeyInformationClass값에 따라 KEY_BASIC_INFORMATION, KEY_FULL_INFORMATION또는 KEY_NODE_INFORMATION형식의 구조를 보유합니다. 구조 다음에는 키에 대해 요청되는 정보의 유형과 키 이름 또는 클래스 문자열의 길이에 따라 크기가 달라지는 유니코드 문자 문자열이 잇습니다.
[in] Length
지정된 KeyInformationClass따라 호출자가 설정해야 하는 KeyInformation 버퍼의 크기(바이트)입니다. 요청된 모든 데이터를 수신하려면 버퍼가 요청된 데이터의 크기만큼 커야 합니다.
[out] ResultLength
결과 데이터의 길이에 대한 출력 포인터입니다. 이 매개 변수는 호출자가 할당한 ULONG 변수를 가리키며, 메서드는 KeyInformation 버퍼에 실제로 기록된 바이트 수를 지정하는 개수를 씁니다. 그러나 지정된 버퍼 길이가 너무 작아 정보를 포함할 수 없는 경우 메서드는 필요한 버퍼 크기를 출력하고 STATUS_BUFFER_OVERFLOW 또는 STATUS_BUFFER_TOO_SMALL 반환합니다. 자세한 내용은 다음 설명 섹션을 참조하세요.
반환 값
QueryKey
호출이 요청된 정보를 KeyInformation 버퍼에 복사하는 데 성공하면 STATUS_SUCCESS 반환합니다. 지정된 버퍼 크기가 너무 작아서 요청된 모든 정보를 수신할 수 없을 경우 메서드는 STATUS_BUFFER_OVERFLOW 반환합니다. 지정된 버퍼 크기가 너무 작아서 요청된 정보를 받을 수 없는 경우 메서드는 STATUS_BUFFER_TOO_SMALL 반환합니다. 그렇지 않으면 메서드가 적절한 오류 상태 코드를 반환합니다. 다음 표에서는 몇 가지 가능한 오류 코드를 보여 줍니다.
반환 코드 | 묘사 |
---|---|
|
메서드에 전달된 매개 변수 중 하나가 잘못되었음을 나타냅니다. |
발언
KeyInformation 버퍼가 너무 작아서 요청된 정보를 저장할 수 없는 경우 메서드는 필요한 크기를 *ResultLength 쓰고 STATUS_BUFFER_OVERFLOW 또는 STATUS_BUFFER_TOO_SMALL 상태 코드를 반환합니다. 메서드는 요청된 정보의 일부만 버퍼에 쓰는 데 성공하면 STATUS_BUFFER_OVERFLOW 반환합니다. 메서드는 버퍼에 정보를 쓸 수 없는 경우 STATUS_BUFFER_TOO_SMALL 반환합니다. *ResultLength 작성된 값은 요청된 모든 정보를 보유하는 데 필요한 최소 버퍼 크기를 나타냅니다.
요구 사항
요구 | 값 |
---|---|
대상 플랫폼 | 보편적 |
헤더 | portcls.h(Portcls.h 포함) |
IRQL | PASSIVE_LEVEL |