首页
社区
课程
招聘
[求助]关于LIST_ENTRY的使用
发表于: 2009-5-17 17:34 4593

[求助]关于LIST_ENTRY的使用

2009-5-17 17:34
4593
我把程序打包放到附件里面了,可以直接用VC6打开dsw工程文件进行编译,如果不行的话可以直接使用命令行编译,sources等文件都在。

下面我说明一下问题:
我在程序中放了一个全局变量,用来保存需要保护的文件,相关定义及结构体如下:
LIST_ENTRY        gProtectList;

typedef struct _DEVICE_EXTENSION
{
        KIRQL                           kIrql;
        KSPIN_LOCK                 kSpinLock;

} DEVICE_EXTENSION, *PDEVICE_EXTENSION;

typedef struct _HIDE_OBJECT
{
        LIST_ENTRY               linkfield;        
        WCHAR                      Name[256];    // 只需处理好这个
     ULONG                       Flag;             // 暂时不管,我用它来分辨是文件还是目录

} HIDE_OBJECT, *PHIDE_OBJECT;

在程序中有三个函数,它们的名字和作用如下所示:
// 查看参数Name所表示的文件是否在全局链表gProtectList中
BOOLEAN
FsHideOrNot(
        IN        PWCHAR                                        Name,
        IN        ULONG                                        Length
        );

// 将参数Name添加到全局链表gProtectList中
VOID
FsAddHideObject(
        IN        PWCHAR                                        Name, 
        IN        ULONG                                        Length,
        IN        ULONG                                        Flag
        );

// 将参数Name表示的节点从全局链表gProtectList中移除
VOID
FsRemoveObject(
        IN        PWCHAR                                        Name, 
        IN        ULONG                                        Length,
        IN        ULONG                                        Flag
        );

我本来以为这些东西很简单的,结果写起来却总也写不好,我写的代码在附件里面,老是蓝,而且好像也没达到效果,目前的代码错误定位在for(XXXXX)这一行中。

由于离毕业答辩没有多少时间了,烦请各位大侠不吝赐教,能帮忙调好就更好了,呵呵。

[课程]Linux pwn 探索篇!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
2
用加锁的链表操作函数试试~
2009-5-17 18:52
0
游客
登录 | 注册 方可回帖
返回
//