无法在Windows还原点的特定路径中添加文件

时间:2019-08-11 15:45:49

标签: c++ windows restore volume-shadow-service

我正在编写一个C ++应用程序,其数据库和配置文件位于programData处。我安装了该应用程序,创建了一个还原点,然后卸载了该应用程序并尝试还原到该应用程序可以工作的位置。我无法在programData中获取文件。为了解决这个问题,我写了一个作家,但是尽管它没有失败并且没有错误注册,但是我仍然错过了那些文件。

到目前为止,我已经尝试使用Windows经典示例代码(https://github.com/microsoft/Windows-classic-samples/tree/master/Samples/VolumeShadowCopyServiceWriter/cpp)使用vssWriter和vssExpressWriter编写编写器。 我试图设置不同的路径和不同的检索方法。不幸的是,使用当前文档,我无法理解我做错了什么。

任何想法都会受到欢迎!

这是我的vssExpressWriter的代码的简化版本:

int main()
{
    ::CoInitialize(NULL);

    createAndRegister();
}

int createAndRegister()
{
    CComPtr<IVssExpressWriter>                  spExpressWriter;
    CComPtr<IVssCreateExpressWriterMetadata>    spMetadata;

    CreateVssExpressWriter(&spExpressWriter);

    spExpressWriter->CreateMetadata(EXPRESS_WRITER_SAMPLE_GUID, L"Sample Express Writer", VSS_UT_USERDATA, 1, 0, 0, &spMetadata);
    PCWSTR  wszComponent = L"myExpressWriter";


    spMetadata->SetRestoreMethod(
        VSS_RME_RESTORE_AT_REBOOT, ////I've also tried it with different option of this enum
        NULL,
        NULL,                              
        VSS_WRE_NEVER,                     
        false),
        L"SetRestoreMethod failed");  

    spMetadata->AddComponent(
        VSS_CT_FILEGROUP,
        NULL,
        wszComponent,
        wszComponent,
        NULL,
        0,
        false,
        false,
        false);   

    spMetadata->AddFilesToFileGroup(
        NULL,
        wszComponent,
        L"c:\\ProgramData\\myFolder",
        L"*.*",
        true,
        NULL,
        NULL);

    spExpressWriter->Register();
}

0 个答案:

没有答案