windows文件过滤驱动问题

细粉条 2014-07-01 06:06:35
写了一个简单的文件过滤驱动,ADDDevice中创建
//创建设备名称
RtlInitUnicodeString(&devName,L"\\Device\\MyDDKDevice");
status = IoCreateDevice(DriverObject,
sizeof(ST_PSVFLT_EXTENSION),
&devName,
FILE_DEVICE_DISK,
FILE_DEVICE_SECURE_OPEN,
FALSE,
&filterDeviceObject);
创建符号链接:
RtlInitUnicodeString(&symLinkName,L"\\Device\\FileFilter");
status = IoCreateSymbolicLink( &symLinkName,&devName );

应用程序向该驱动发ioctl,首先createfile得到handle
HANDLE hDevice = CreateFile("\\\\.\\FileFilter",
GENERIC_READ | GENERIC_WRITE,
0, // share mode none
NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL );
得到错误码2 找不到指定路径
但是用winobj查看,符号链接创建成功,如图

不知道是什么原因不能createfile成功,求指导。
...全文
193 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
编程实战营 2014-10-29
  • 打赏
  • 举报
回复
我也遇到这个问题了,的确是楼上说的那样,只有将符号链接放到\??\ 下才对应用程序是可见的 我用winObj来查看了
Henzox 2014-07-03
  • 打赏
  • 举报
回复
默认只有\??\ 下才对应用程序是可见的。这是规矩呀。
细粉条 2014-07-03
  • 打赏
  • 举报
回复
引用 2 楼 Henzox 的回复:
符号链接应该放在 \??\ 里才会对应用程序可见啊,修改下生成符号链接的路径。
自己已经发现错误了,是得放到\??\下,就会在GLOBAL??下看到符号链接。 但是为什么放到\device下不可以呢?
Henzox 2014-07-03
  • 打赏
  • 举报
回复
符号链接应该放在 \??\ 里才会对应用程序可见啊,修改下生成符号链接的路径。
细粉条 2014-07-02
  • 打赏
  • 举报
回复
怎么没人回答,自己顶一下

9,506

社区成员

发帖
与我相关
我的任务
社区描述
Windows专区 安全技术/病毒
社区管理员
  • 安全技术/病毒社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧