2012-10-18 7 views
1

섀도 복사본을 만들고 있는데 섀도 복사본에서 RegLoadKey()을 사용하여 레지스트리 하이브를 탑재하려고합니다. 따라서 일반 레지스트리 기능을 사용하여 내용을 살펴 봅니다.
이 기능은 일반적으로 작동하지 않는 특정 컴퓨터를 제외하고는 잘 작동합니다.RegLoadKey가 섀도 복사본 내에서 하이브 파일로

나는 섀도 복사본을 생성하고 마운트 포인트를 얻을 수 - 그때 전화
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy8
같은 것을

RegLoadKeyW(HKEY_LOCAL_MACHINE, "\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy8\Windows\System32\config\SOFTWARE", "mntpoint"); 

내가 CreateFileW()를 사용하는 경우이 호출은 1009 - The configuration registry database is corrupt.

를 반환 내가 성공적으로이 파일을 열 수 있습니다 그 경로를 사용하여 확실히 거기에 있습니다.

그림자 복사가 레지스트리 작성자와 함께 만들어 졌는지 확인 했으므로 그 문제는 아닌 것 같습니다.
쉐도우 복사본을 만들어 재부팅 한 후 다시 시도해도 차이가 없습니다.
이것은 일부 컴퓨터에서만 발생합니다. 대부분 잘 작동합니다. 나는 그것이 작동하지 않는 기계를 차별화 할 수 있을지 확신하지 못한다.
기계는 Windows 2008 64 비트입니다.

+0

명확히하기 위해 일부 컴퓨터에서는 일관되게 작동하며 다른 컴퓨터에서는 일관되게 작동하지 않습니까? 귀하가 식별 할 수있는 공통 요소는 무엇입니까? –

+0

예, 둘 다 일관됩니다. 언급했듯이, "작동하지 않는 컴퓨터가 무엇인지 구분할 수 있는지 확실하지 않습니다." – shoosh

답변

0

밝혀졌습니다. 사용 대상은 RegLoadKeyW()입니다.로드 된 하이브는 어딘가에 쓸 수 있어야합니다. 섀도 복사본은 읽기 전용이므로 실패했습니다.
마운트 된 파일을 섀도 복사본 바깥으로 복사하면 정상적으로 작동합니다.

+0

해결책이 문제 설명과 일치 할 수 없습니다. "일부"의 경우 이동 한 이미지 및 r/w 상태를 변경 한 이미지는 절대로 언급하지 않았습니다. – Pat

-3

섀도 복사본을 만든 컴퓨터와 같은 컴퓨터에로드하고 있습니까? RegLoadKeyW()

한 비고

는 말한다 :

두 개의 레지스트리 하이브 파일 형식이 있습니다. 현재 운영 체제에서 생성 된 레지스트리 하이브는 일반적으로 이전 운영 체제에서로드 할 수 없습니다.

+0

업그레이드 된 운영 체제는 이전 레지스트리 형식을 사용하거나 더 나쁜 형식을 혼합하여 사용할 수 있습니다. @shoosh, 영향을받는 시스템이 이전 버전의 OS에서 업그레이드되었을 가능성이 있습니까? –

+0

아니요, 바닐라로 새로 설치된 시스템입니다 – shoosh