双向循环链表

判断链表是否为空 IsListEmpty

初始化双向链表头 InitializeListHead

插入链表头部 InsertHeadList

插入链表尾部 InsertTailList

移除头部节点 RemoveHeadList

移除尾部节点 RemoveTailList

移除当前节点 RemoveEntryList

#include <ntifs.h>
#include <ntstrsafe.h>

typedef struct _TEST
{
	ULONG u1;
	ULONG u2;
	LIST_ENTRY node;

}TEST,*PTEST;


VOID DriverUnload(PDRIVER_OBJECT pDriver)
{
	DbgPrint("驱动卸载! \n");
}

NTSTATUS DriverEntry(PDRIVER_OBJECT pDriver, PUNICODE_STRING pReg)
{
	//测试链表结构
	TEST Test[5] = { 0 };
	for (size_t i = 0; i < 5; i++)
	{
		Test[i].u1 = i;
		Test[i].u2 = i;
	}

	//初始化链表
	InitializeListHead(&Test[0].node);

	//判断链表是否为空
	if (IsListEmpty(&Test[0].node))
	{
		DbgPrint("Empty");
	}
    
	//头部插入节点
	InsertHeadList(&Test[0].node, &Test[1].node);
	InsertHeadList(&Test[0].node, &Test[2].node);

	//尾部插入节点
	InsertHeadList(&Test[0].node, &Test[3].node);
	
	pDriver->DriverUnload = DriverUnload;

	return	STATUS_SUCCESS;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UE星空

感谢打赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值