zxl250
驱动牛犊
驱动牛犊
  • 注册日期2007-12-02
  • 最后登录2016-01-09
  • 粉丝2
  • 关注0
  • 积分-3分
  • 威望283点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
阅读:3379回复:7

MiniFilter在Power User权限下与用户态通信

楼主#
更多 发布于:2010-02-23 11:36
向各位了解MINIFILTER的大牛们求助
在Administrators权限小调用 FilterConnectCommunicationPort 函数与内核层的驱动通信能够正常,但在Power User权限下调用 FilterConnectCommunicationPort 函数总是返回 E_ACCESSDENIED 错误。
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
沙发#
发布于:2010-02-23 13:05
正常.你创建了安全描述符了吧?如果创建了,可以连接,但是无法发送数据

方法是继续在服务中处理.有人是改为cdo对象通讯.
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
板凳#
发布于:2010-02-23 13:07
    // 创建安全描述符

     status  = FltBuildDefaultSecurityDescriptor( &sd,
                                                     FLT_PORT_ALL_ACCESS );

        if (!NT_SUCCESS( status )) {
             goto DriverEntryCleanup;
        }

        RtlInitUnicodeString( &uniStringMiniName, DEKFS_MINI_PORT_NAME );

        InitializeObjectAttributes( &oa,
                                    &uniStringMiniName,
                                    OBJ_KERNEL_HANDLE | OBJ_CASE_INSENSITIVE,
                                    NULL,
                                    sd );

        status = FltCreateCommunicationPort( Globals.Filter,
                                             &Globals.ServerPort,
                                             &oa,
                                             NULL,
                                             DekFsConnectNotify,
                                             DekFsDisconnectNotify,
                                             DekFsMessageNotify,
                                             KL_MAX_USER_COUNT );
                                    

        FltFreeSecurityDescriptor( sd );


        if (!NT_SUCCESS( status )) {

            if( Globals.ServerPort )
                FltCloseCommunicationPort(Globals.ServerPort);
            goto DriverEntryCleanup;
        }
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
zxl250
驱动牛犊
驱动牛犊
  • 注册日期2007-12-02
  • 最后登录2016-01-09
  • 粉丝2
  • 关注0
  • 积分-3分
  • 威望283点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
地板#
发布于:2010-02-23 13:21
谢谢 ZNSOFT 的解答!!
我已经创建了安全描述符了,
status = FltBuildDefaultSecurityDescriptor( &sd, FLT_PORT_ALL_ACCESS );
用户态只能在 ADMINs & SYSTEM 权限下才能访问过滤器通信端口对象。
难道真的没有其他办法解决 Power User & User 权限下访问过滤器通信端口对象的问题吗?
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
地下室#
发布于:2010-02-23 15:24
改用pdo方式.或者在服务中通讯.
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
zxl250
驱动牛犊
驱动牛犊
  • 注册日期2007-12-02
  • 最后登录2016-01-09
  • 粉丝2
  • 关注0
  • 积分-3分
  • 威望283点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2010-02-24 11:32
能在微处理过滤器模型基础上直接创建一个设备对象和符号链接与应用程序通信吗?
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
6楼#
发布于:2010-02-24 14:08
可以,看minfilter之 cdo 例子
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
zxl250
驱动牛犊
驱动牛犊
  • 注册日期2007-12-02
  • 最后登录2016-01-09
  • 粉丝2
  • 关注0
  • 积分-3分
  • 威望283点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2010-02-25 11:59
谢谢!
游客

返回顶部