3 个版本
0.1.2 | 2020 年 10 月 3 日 |
---|---|
0.1.1 | 2020 年 8 月 17 日 |
0.1.0 | 2020 年 8 月 12 日 |
#1609 in 文件系统
用于 projfs
87KB
1.5K SLoC
包含 (静态库, 11KB) lib/x86/ProjectedFSLib.lib, (静态库, 10KB) lib/arm/ProjectedFSLib.lib, (静态库, 10KB) lib/arm64/ProjectedFSLib.lib, (静态库, 10KB) lib/x64/ProjectedFSLib.lib
ProjFS
更多信息请参见 示例
开始使用
为了获取实例,应创建一个实现了 MyProjFS
结构体,该结构体实现了 Sync
、ProjFSDirEnum
和 ProjFSRead
。
// create root dir to be projected
std::fs::create_dir("root_dir").ok();
// create a virtualization instance of MyProjFS
// this function returned immediately, and you would like to hold the instance during the projection
let instance = start_proj_virtualization("root_dir", Box::new(MyProjFS::new())).unwrap();
std::thread::sleep(std::time::Duration::from_secs(std::u64::MAX));
// once the instance dropped, the projection stopped
drop(instance)
特性
-
PRJ_CANCEL_COMMAND_CB
-
PRJ_END_DIRECTORY_ENUMERATION_CB
-
PRJ_GET_DIRECTORY_ENUMERATION_CB
-
PRJ_GET_FILE_DATA_CB
(通过ProjFSRead::read
) -
PRJ_GET_PLACEHOLDER_INFO_CB
(通过ProjFSRead::get_metadata
) -
PRJ_NOTIFICATION_CB
-
PRJ_QUERY_FILE_NAME_CB
-
PRJ_START_DIRECTORY_ENUMERATION_CB
回调系列 PRJ_*_DIRECTORY_ENUMERATION_CB
由 ProjFSDirEnum::dir_iter
和 ProjFSDirEnum::dir_iter_cache
生成。
注意
确保您的机器上启用了 Projected File System
Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart
无运行时依赖
~115KB