如何自动对 "cloud" 文件 (OneDrive) 进行无水化、部分水化和完全水化以进行测试?
How can I automate no, partial and full hydration of "cloud" files (OneDrive) for testing?
我想测试一些软件,并想让它在云文件方面表现良好。作为参考,引入了 RtlIsPartialPlaceholder
and RtlIsCloudFilesPlaceholder
等函数,以便查看遍历文件夹层次结构时返回的信息。上面的链接指向内核模式文档,但这些功能也存在于用户模式(ntdll.dll)并且它们的实现非常简单。
但是,为了测试上述软件,我必须能够以某种方式创建 OneDrive 上文件的占位符所在的状态。
我可以使用哪些功能(注册 COM 类 也可以)来自动创建可重现的测试设置,我可以将其用于:
- 创建占位符
- 仅 部分水化占位符
- 对两个目录 和 文件实现相同的效果
PS: 是唯一一个远程连接到主题的人,我可以在 SO 上找到它。
标准 file/directory 操作(create/read/write 等)可以使用 Win32 API 透明地实现。这就是这项技术的全部意义所在。
因此,您可以使用标准 Win32 APIs 创建占位符。
如果您在“同步根”中创建文件或目录(如 OneDrive 案例中的 OneDrive 文件夹层次结构),关联的同步引擎进程(如 OneDrive.exe)将确保文件或目录是一个占位符。而且您不能在同步根层次结构之外创建占位符,AFAIK。
对于文件(您不能对目录进行水化或脱水),reading/writing 对应于水化。请注意,一些同步引擎(and/or 取决于它们的配置)可以决定始终完全水化文件,即使最终用户只询问了一些字节 API(应用程序)。
虽然有一些特定的 Win32 APIs 用于特殊操作。
您可以使用 CfDehydratePlaceholder. You can hydrate a file CfHydratePlaceholder 对文件进行脱水处理。对于所有 Cloud Filter API,在创建目录句柄时,不要忘记使用 FILE_FLAG_BACKUP_SEMANTICS 标志。
我想测试一些软件,并想让它在云文件方面表现良好。作为参考,引入了 RtlIsPartialPlaceholder
and RtlIsCloudFilesPlaceholder
等函数,以便查看遍历文件夹层次结构时返回的信息。上面的链接指向内核模式文档,但这些功能也存在于用户模式(ntdll.dll)并且它们的实现非常简单。
但是,为了测试上述软件,我必须能够以某种方式创建 OneDrive 上文件的占位符所在的状态。
我可以使用哪些功能(注册 COM 类 也可以)来自动创建可重现的测试设置,我可以将其用于:
- 创建占位符
- 仅 部分水化占位符
- 对两个目录 和 文件实现相同的效果
PS:
标准 file/directory 操作(create/read/write 等)可以使用 Win32 API 透明地实现。这就是这项技术的全部意义所在。
因此,您可以使用标准 Win32 APIs 创建占位符。
如果您在“同步根”中创建文件或目录(如 OneDrive 案例中的 OneDrive 文件夹层次结构),关联的同步引擎进程(如 OneDrive.exe)将确保文件或目录是一个占位符。而且您不能在同步根层次结构之外创建占位符,AFAIK。
对于文件(您不能对目录进行水化或脱水),reading/writing 对应于水化。请注意,一些同步引擎(and/or 取决于它们的配置)可以决定始终完全水化文件,即使最终用户只询问了一些字节 API(应用程序)。
虽然有一些特定的 Win32 APIs 用于特殊操作。
您可以使用 CfDehydratePlaceholder. You can hydrate a file CfHydratePlaceholder 对文件进行脱水处理。对于所有 Cloud Filter API,在创建目录句柄时,不要忘记使用 FILE_FLAG_BACKUP_SEMANTICS 标志。