IVssBackupComponents::InitializeForBackup失败,并显示E_UNEXPECTED错误。
在事件查看器中有两个错误:
错误1
Volume Shadow Copy Service error: A critical component required by
the Volume Shadow Copy service is not registered. This might
happened if an error occurred during Windows setup or during
installation of a Shadow Copy provider.
The error returned from
CoCreateInstance on class with CLSID
{e579ab5f-1cc4-44b4-bed9-de0991ff0623} and Name IVssCoordinatorEx2
is [0x80040154, Class not registered ].
Operation:
Instantiating VSS server
错误2
Volume Shadow Copy Service error: Unexpected error calling routine
CoCreateInstance. hr = 0x80040154, Class not registered.
Operation:
Instantiating VSS server
我创建了简单的“hello world” VSS程序:
#include "vss.h"
#include "vswriter.h"
#include <VsBackup.h>
#include <stdio.h>
int main()
{
#define CHECK_PRINT(result) printf("%s %#08x\n",result==S_OK?"S_OK":"error", result)
HRESULT result = CoInitialize(NULL);
CHECK_PRINT(result);
IVssBackupComponents *VssHandle;
result = CreateVssBackupComponents(&VssHandle);
CHECK_PRINT(result);
result = VssHandle->InitializeForBackup();
CHECK_PRINT(result);
return 0;
}
它报告相同的输出
S_OK 00000000
S_OK 00000000
错误0x80042302
在我的主要开发中,Windows 10 PC和带有全新安装的虚拟Windows10。
VSS,swprv服务正在运行。
最佳答案
好。通过查看过程监视器来调试反汇编,这表明我的问题是缺少注册表项
"HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{F2C2787D-95AB-40D4-942D-298F5F757874}"
谷歌告诉我,该值应为
[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{F2C2787D-95AB-40D4-942D-298F5F757874}]
@="PSFactoryBuffer"
[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{F2C2787D-95AB-40D4-942D-298F5F757874}\InProcServer32]
@=hex(2):25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,6f,00,74,00,25,\
00,5c,00,53,00,79,00,73,00,57,00,4f,00,57,00,36,00,34,00,5c,00,76,00,73,00,\
73,00,5f,00,70,00,73,00,2e,00,64,00,6c,00,6c,00,00,00
"ThreadingModel"="Both"
关于c++ - IVssBackupComponents::InitializeForBackup失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40735655/