看驱动书心得------链表

在看《windows驱动开发技术详解》中,关于第五章链表部分,做书上实验时本来以为写入链表后,要先读取然后才能删除链表,仔细看看作者的例子后发现,原来是先要从链表中删除(也就是取出),然后才能对取出的数据进行读取。

//从链表中取出,并显示
KdPrint(("Begin remove from link list\n"));
while(!IsListEmpty(&linkListHead))
{
PLIST_ENTRY pEntry = RemoveTailList(&linkListHead);
pData = CONTAINING_RECORD(pEntry,
                              MYDATASTRUCT,
                              ListEntry);
KdPrint(("%d\n",pData->number));
ExFreePool(pData);
}

自己写了一个读写链表的方法,在楚狂人驱动基础上有。


//直接冲链表中读取,不删除链表元素

PLIST_ENTRY pList = &linklisthead;

pList = pList->Blink;

while ((&linklisthead)!=pList)
{
pData = CONTAINING_RECORD(pList, MYDATASTRUCT, ListEntry);
KdPrint(("%d\n",pData->number));

pList = pList->Blink;
}

注意:链表头没有数据


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值