1

シャドウコピーを作成していますが、を使用してそのシャドウコピーからレジストリハイブをマウントしたいRegLoadKey()ので、通常のレジストリ関数を使用してその内容を確認します。
これは通常、まったく機能しない特定のマシンを除いて、うまく機能します。

シャドウコピーを作成し、そのマウントポイントを取得し
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy8
ます 。

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

この呼び出しは1009 - The configuration registry database is corrupt.

私が使用する場合、私はCreateFileW()そのパスを使用してこのファイルを正常に開くことができるので、それは間違いなくそこにあります。

シャドウコピーがレジストリライターで作成されていることを確認したので、それが問題になるとは思いません。
シャドウコピーを作成し、再起動後にこれを試してみても違いはありません。
これは一部のマシンでのみ発生します。ほとんどの場合、問題なく動作します。動作しないマシンの違いが何であるかわかりません。
マシンはWindows200864ビットです。

4

2 に答える 2

0

問題は、RegLoadKeyW()ロードされたハイブを使用するためにどこかに書き込み可能である必要があるということでした。シャドウコピーは読み取り専用であるため、失敗しました。
マウントされたファイルをシャドウコピーの外にコピーすると、正常に機能しました。

于 2012-10-21T22:50:16.817 に答える
-3

シャドウコピーを作成したのと同じマシンにロードしていますか?

RegLoadKeyW()のコメントの1つは、次のように述べています。

2つのレジストリハイブファイル形式があります。現在のオペレーティングシステムで作成されたレジストリハイブは、通常、以前のオペレーティングシステムではロードできません。

于 2012-10-18T21:00:32.820 に答える