IRegistryKey::EnumerateValueKey 메서드(portcls.h)
메서드는 EnumerateValueKey
값 키를 포함하는 레지스트리 항목에 대한 정보를 반환합니다.
구문
NTSTATUS EnumerateValueKey(
[in] ULONG Index,
[in] KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
[out] PVOID KeyValueInformation,
[in] ULONG Length,
[out] PULONG ResultLength
);
매개 변수
[in] Index
하위 키 인덱스를 지정합니다. 이 매개 변수는 값이 요청된 하위 키를 식별합니다. 키에 n 하위 키가 포함된 경우 유효한 인덱스는 0에서 n-1까지입니다. 인덱스가 이 범위를 초과하면 메서드는 STATUS_NO_MORE_ENTRIES 반환합니다.
[in] KeyValueInformationClass
버퍼에 반환할 정보의 형식을 지정합니다. 이 매개 변수를 다음 KEY_VALUE_INFORMATION_CLASS 열거형 값 중 하나로 설정합니다.
- KeyValueBasicInformation
-
KeyValueFullInformation
-
KeyValuePartialInformation
[out] KeyValueInformation
키 값에 대한 출력 포인터입니다. 이 매개 변수는 메서드가 요청된 데이터를 쓰는 호출자가 할당한 버퍼를 가리킵니다. 버퍼에는 KeyValueInformationClass 값에 따라 KEY_VALUE_BASIC_INFORMATION, KEY_VALUE_FULL_INFORMATION 또는 KEY_VALUE_PARTIAL_INFORMATION 형식의 구조가 포함됩니다. 구조체 뒤에는 키 값의 데이터 형식에 따라 크기가 달라지는 추가 데이터가 추가됩니다.
[in] Length
지정된 KeyValueInformationClass에 따라 호출자가 설정해야 하는 KeyValueInformation 버퍼의 크기(바이트)입니다. 호출이 성공하려면 버퍼는 메서드가 버퍼에 쓰는 데이터만큼 커야 합니다.
[out] ResultLength
결과 데이터의 길이에 대한 출력 포인터입니다. 이 매개 변수는 호출자가 할당한 ULONG 변수를 가리키며, 메서드는 KeyValueInformation 버퍼에 실제로 기록된 바이트 수를 지정하는 개수를 씁니다. 그러나 지정된 버퍼 길이가 너무 작아 정보를 포함할 수 없는 경우 메서드는 대신 필요한 버퍼 크기를 출력하고 STATUS_BUFFER_OVERFLOW 반환합니다.
반환 값
EnumerateValueKey
는 호출이 요청된 정보를 KeyValueInformation 버퍼에 복사하는 데 성공하면 STATUS_SUCCESS 반환합니다. 지정한 버퍼 크기가 너무 작아서 사용 가능한 모든 정보를 수신하지 못하면 메서드는 STATUS_BUFFER_OVERFLOW 반환합니다. 그렇지 않으면 메서드는 적절한 오류 코드를 반환합니다. 다음 표에서는 가능한 반환 상태 코드 중 일부를 보여 줍니다.
반환 코드 | 설명 |
---|---|
|
지정한 버퍼가 너무 작아서 정보를 받지 못했음을 나타냅니다. |
|
메서드에 전달된 매개 변수 중 하나가 잘못되었음을 나타냅니다. |
|
더 이상 값 키를 사용할 수 없음을 나타냅니다( Index 매개 변수가 값 키 수보다 크거나 같음). |
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 유니버설 |
헤더 | portcls.h(Portcls.h 포함) |
IRQL | PASSIVE_LEVEL |