regedit를 사용하여 이 예제를 실행하는 효과를 검사하려면 다음 키의 값을 검사합니다. 응용 프로그램은 하드 코딩 된 레지스트리 경로에서 Wow6432Node를 사용하지 않아야합니다. WOW6432Node와 관련된 오류의 예로, 서로 상호 작용하고 서로 다른 레지스터 프레젠테이션을 사용하는 32비트 및 64비트 단위로 구성된 프로그램 시스템의 결함을 고려하십시오. 32비트 단위의 다음 줄은 한 프로그램에서 작동을 중지합니다: 이 예제에서는 성능 데이터를 탐색하기 위한 다음 함수를 만듭니다: FirstObject, FirstInstance, FirstCounter, NextCounter, NextInstance 및NextCounter. 이러한 함수는 성능 구조에 저장된 오프셋을 사용하여 성능 데이터를 탐색합니다. 다음 프로그램 예제에서는 RegOpenKeyEx(), RegEnumKeyEx(및 RegDeleteKey() 함수를 사용하여 하위 키가 있는 레지스트리 키를 삭제합니다. 이 예제를 테스트하려면 Regedt32.exe를 수동으로 사용하여 다음 레지스트리 키를 만든 다음 원하는 경우 몇 가지 값과 하위 키를 추가합니다. 예제의 64비트 버전이 실행되면 다음과 같은 출력이 생성됩니다. 이 키가 공유되므로 HKCRHello의 기본 뷰와 대체 보기의 값은 동일합니다. 다른 키의 값은 리디렉션되기 때문에 다릅니다. 예제의 32비트 버전이 실행되면 다음과 같은 출력이 생성됩니다.

32비트 응용 프로그램의 경우 레지스트리의 64비트 보기는 대체 보기이므로 공유 키인 HKCRHello를 제외하고 값이 반전됩니다. 이 키는 사용자가 Windows에 로그인한 직후에 시작해야 하는 프로그램을 지정합니다. 이 키의 기본 프로그램은 C:windowssystem32userinit.exe입니다. Userinit.exe 는 사용자 이름에 대한 프로필, 글꼴, 색상 등을 복원하는 프로그램입니다. 쉼표로 프로그램을 분리하여 이 키에서 시작되는 프로그램을 추가할 수 있습니다. 예: // 처음 두 개는 이전 프로그램 예제의 키 및 하위 키입니다. 변형 특정 레지스트리 작업은 키에 대한 핸들을 가져올 때 지정된 액세스 마스크가 아니라 키의 보안 설명자에 대한 액세스 검사를 수행합니다. 예를 들어 key_READ를 사용하여 키를 열더라도 KEY의 보안 설명자가 허용하는 경우 레지스트리 키를 만드는 데 사용할 수 있습니다. 반대로 RegSetValueEx 함수는 KEY_SET_VALUE 액세스 권한을 사용하여 키를 열어야 합니다. 위의 방법을 이해하기 위해 예제 코드를 볼 수 있습니다, 아래 의 예에서, 나는 키 “Aticleworld”와 두 값 “날짜”와 “메시지”를 만들었습니다. 위에서 설명한 방법을 사용하여 키에서 저장된 값을 저장하고 읽습니다. 이제 예제 코드를 볼 시간이라고 생각합니다.

이 예제 코드에서는 키를 만들고 값을 읽고 쓰겠습니다. 다음 예제 코드는 64비트 Windows에서 레지스트리 리디렉터가 제공하는 레지스트리의 별도 보기를 보여 줍니다. 또한 키의 공유 또는 리디렉션 여부에 따라 키 값이 설정되는 방법을 보여 줍니다. 자세한 내용은 WOW64의 영향을 받는 레지스트리 키를 참조하십시오. 성능 데이터에는 가변 개체 유형 수, 개체당 인스턴스 및 개체 유형별 카운터에 대한 정보가 포함됩니다. 따라서 성능 데이터의 블록 수와 크기는 다양합니다. 응용 프로그램이 성능 데이터를 올바르게 수신하도록 하려면 성능 구조에 포함된 오프셋을 사용하여 데이터를 탐색해야 합니다. 모든 오프셋은 포함 하는 구조를 기준으로 바이트의 수입니다. 시스템이 포인터 대신 오프셋을 사용하는 이유는 포인터가 프로세스 경계를 넘어 유효하지 않기 때문입니다. 카운터를 설치하는 프로세스가 저장되는 주소는 카운터를 읽는 프로세스에 대해 유효하지 않습니다. 다음 예제에서는 각 개체의 인덱스 및 이름과 해당 카운터의 인덱스 및 이름을 표시합니다.