链表的问题...

嬴政爱天下 嬴政爱天下 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include <ntddk.h>
#define MEM_TAG 'jklk'
typedef struct
{
LIST_ENTRY List_entry;
ULONG Data;
}MY_LIST,*PMY_LIST;

LIST_ENTRY My_listHead;//声明一个结构

void Unload(IN PDRIVER_OBJECT DriverObject)
{
KdPrint(("驱动卸载成功!\n"));
}


VOID Listinit()
{

InitializeListHead(&My_listHead);//初始化
}

NTSTATUS MyAppendData(ULONG AppendValue)
{
PMY_LIST my_AppendList=(PMY_LIST)ExAllocatePoolWithTag(PagedPool,sizeof(MY_LIST),
MEM_TAG);
if(my_AppendList==NULL)
{
KdPrint(("分配空间失败\n"));
return -1;
}
else
{
KdPrint(("分配空间成功\n"));
}
my_AppendList->Data=AppendValue;
InsertHeadList(&My_listHead,(PLIST_ENTRY)my_AppendList);
ExFreePool(my_AppendList);

return STATUS_SUCCESS;

}

void ShowList()
{
PLIST_ENTRY p=NULL;
PMY_LIST elem;
KdPrint(("Show List start\n"));
for( p=My_listHead.Flink;p!=My_listHead.Flink;p=p->Flink)
{

elem=CONTAINING_RECORD(My_listHead.Flink,MY_LIST,List_entry);
}


KdPrint(("\n\nValue Is%x \n",elem->Data));

}
NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,IN PUNICODE_STRING RegPath)
{
ULONG value;
value=0;
KdPrint(("驱动加载成功!\n"));
Listinit();
for(value=0;value<10;value++)
MyAppendData(value);
ShowList();
DriverObject->DriverUnload=Unload;
return STATUS_SUCCESS;
}



哪位大侠帮忙改一下这段链表,该如何让他将 10个数全部都显示出来的呀?
晕死了,试了好多次他只能显示一个数值,我看的是天书夜读他上面的例子仿写的..
但搞 了半天还是没显示出来,谢谢哪位帮助一下哈。。
...全文
评论 4
收藏 已收藏
分享
返回顶部