阅读:3379回复:7
MiniFilter在Power User权限下与用户态通信
向各位了解MINIFILTER的大牛们求助
在Administrators权限小调用 FilterConnectCommunicationPort 函数与内核层的驱动通信能够正常,但在Power User权限下调用 FilterConnectCommunicationPort 函数总是返回 E_ACCESSDENIED 错误。 |
|
沙发#
发布于:2010-02-23 13:05
正常.你创建了安全描述符了吧?如果创建了,可以连接,但是无法发送数据
方法是继续在服务中处理.有人是改为cdo对象通讯. |
|
|
板凳#
发布于: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; } |
|
|
地板#
发布于:2010-02-23 13:21
谢谢 ZNSOFT 的解答!!
我已经创建了安全描述符了, status = FltBuildDefaultSecurityDescriptor( &sd, FLT_PORT_ALL_ACCESS ); 用户态只能在 ADMINs & SYSTEM 权限下才能访问过滤器通信端口对象。 难道真的没有其他办法解决 Power User & User 权限下访问过滤器通信端口对象的问题吗? |
|
地下室#
发布于:2010-02-23 15:24
改用pdo方式.或者在服务中通讯.
|
|
|
5楼#
发布于:2010-02-24 11:32
能在微处理过滤器模型基础上直接创建一个设备对象和符号链接与应用程序通信吗?
|
|
6楼#
发布于:2010-02-24 14:08
可以,看minfilter之 cdo 例子
|
|
|
7楼#
发布于:2010-02-25 11:59
谢谢!
|
|