美文网首页
Dokan Fuse例程试用

Dokan Fuse例程试用

作者: 要厉害的 | 来源:发表于2019-08-12 23:06 被阅读0次

Dokan FUSE项目的目的是“fuse4win”,即实现Windows上的fuse。利用将dokan操作封装,对接fuse,方便开发者将fuse文件系统移植到Windows中。开发者可以不用考虑以Windows 方式实现(看上去不会Windows开发问题不大,因为要用实现的类似于Linux下的接口,比如读取目录fuse_operations::readdir,而直接使用Dokan则要实现DOKAN_OPERATIONS::FindFiles)。

dokany源码中包含了对于dokan fuse实现的代码以及在sample目录下的例子。

如果想编译使用Dokay中的fuse sample需要执行如下操作:

1、搭建构建环境

在VS2019中安装SDK,cmake,Specture-mitigated libs和C++生成工具。安装WDK(Windows内核相关开发,要编译dokan1.sys)。

2、编译工程

在整个vs19中将dokan.sln打开,编译工程。

编译成功之后使用管理员执行cmd,进入编译生成二进制的目录。

3、安装dokan的内核driver(dokan1.sys)

使用命令为dokanctl /i d。安装完成之后使用dokanctl.exe /v来查看内核驱动安装情况。

可能需要修改BIOS中Secure Boot选项,否则不允许安装。需要使用管理员用户权限,进入dokany目录执行"Powershell.exe -executionpolicy remotesigned -File .\cert\dokan-import.ps1" 让windows允许内核安装内核driver。

4、 编译sample中的fusexmp

内核安装成功可以编译sample中的fuse例子。提前安装cygwin和gcc/g++/make等。使用cygwin进入dokanfuse目录。

使用命令“cmake . ;make”,编译生成cygdokanfuse1.dll。cygwin等编译fusexmp需要链接该cygdokanfuse1.dll。然后编译fusexmp.c,使用命令如下:

gcc fusexmp.c -I../../dokan_fuse/include -D_FILE_OFFSET_BITS=64 -L. -lcygdokanfuse1 -o fusexmp.exe

5、运行 

编译成功之后使用“fusexmp.exe l -d”即可在Windows Explorer中看到新的文件系统(l代表盘符)。

目前Dokan FUSE支持的是highlevel fuse接口(fuseexp例子即是),而不是lowlevel fuse接口。lowlevel处理的是inode,而highlevel屏蔽了inode等细节,直接以文件名称操作。

相关文章

网友评论

      本文标题:Dokan Fuse例程试用

      本文链接:https://www.haomeiwen.com/subject/yduejctx.html