浅析ProjFS构架开发及原理

projfs新手开发总结
官方描述: windows projected file system (projfs) 允许名为“provider”的用户模式应用程序将备份数据存储中的分层数据投影到文件系统中,使其显示为文件系统中的文件和目录。例如,简单的提供程序可以将windows注册表投影到文件系统中,使注册表项和值分别显示为文件和目录。更复杂的提供程序示例是用于虚拟化非常大的git存储库的vfs for git。
构架原理
构架&原理:通过在原生的ntfs之上抽象出一套callback机制,实现用户层面的数据一致性管理
适用范围:仅对virtualizationrootdir作为根目录以及其下的子目录有效,normaldir普通目录不在控制范围内。
应用场景&局限性:主要用于vfs层面已有文件的读取、修改、删除、目录遍历等跟踪与控制,对于新建文件只能通过notification来跟踪状态。
性能表现:从实际测得的数据来看,在ssd磁盘中,开启projfs会额外增加最少50%的性能开销(主要是延迟增加)
运行机制&流程
关键数据结构
六大关键状态
获取状态prjgetondiskfilestate函数,目前该函数存在部分目录or文件查询不到状态的情况。
开发必读
官方文档:https://learn.microsoft.com/en-us/windows/win32/projfs/projfs-programming-guide
官方c#用例//github.com/microsoft/projfs-managed-api/tree/main/simpleprovidermanaged
官方最佳实践c#: https://github.com/microsoft/vfsforgit
c++精简用例//git-sa.nie.netease.com/gajira/projfscpp
官方c++用例//github.com/microsoft/windows-classic-samples/tree/main/samples/projectedfilesystem
其他
第三方c#库//github.com/dahall/vanara/blob/master/pinvoke/projectedfslib/readme.md
第三方c#库用例//github.com/dahall/winclassicsamplescs/tree/master/projectedfilesystem


中科院:太赫兹技术及应用的发展已进入关键时期
3D打印机打印精度和打印速度,如何兼顾?
飞腾官方京东自营旗舰店正式上线试运营
触控检测芯片VK36W6D一对一输出六点液体水位检测资料分享
家庭加入物联网技术还存在隐私吗
浅析ProjFS构架开发及原理
预防微型直流减速电机齿轮变形的方法
荣耀Note9什么时候上市?荣耀三部曲华为荣耀Note9即将发布,配置、渲染图、价格消息汇总
东莞丰通塑胶有限公司选购我司差示扫描量热仪及热重分析仪
应用工程师咨询:工业测量中的信号损坏
30秒搞懂太阳能路灯的工作原理和优势
车规电源及快充产业链了解
国家标准化管理委员会发布电动汽车无线充电4项国家标准
“芯”动价来袭|国民技术天猫旗舰店11.11全场8.8折
VR为文化旅游注入新生机
贸泽开售Maxim高度集成的MAXM17574 DC
荣耀Magic和联想MotoZ哪个拍照最好
研究人员发现一种可在水中产生纳米气泡的新方法
用于医疗设备的音圈驱动技术
微型时控开关—小型时控开关简介