下面是我写的代码:
#pragma once
//************************************** 包 含 相 关 文 件 ***************************************************
#include <ntddk.h>
//************************************************************************************************************
//************************************** 自定义数据结构 ******************************************************
typedef struct _LIST_ENTRY
{
ULONG *Flink;
ULONG *Blink;
}LIST_ENTRY,*PLIST_ENTRY;
typedef struct _MYDATASTRUCT
{
LIST_ENTRY linkEntry;
ULONG number;
}MYDATASTRUCT,*PMYDATASTRUCT;
//************************************************************************************************************
//************************************* LinkListTest 函数*****************************************************
#pragma INITCODE
VOID LinkListTest()
{
LIST_ENTRY LinkListHead;
PMYDATASTRUCT pData;
ULONG i;
//初始化链表
InitializeListHead(&LinkListHead);
//在链表中插入10个元素
DbgPrint("开始插入10个元素!\n");
for(i=0;i<10;i++)
{
pData=(PMYDATASTRUCT)ExAllocatePool(PagedPool,sizeof(MYDATASTRUCT));
pData->number=i;
InsertHeadList(&LinkListHead,&pData->linkEntry);
}
//从链表中取出并显示
DbgPrint("显示链表!\n");
while(!IsListEmpty(&LinkListHead))
{
PLIST_ENTRY pEntry=RemoveTailList(&LinkListHead);
pData=CONTAINING_RECORD(pEntry,MYDATASTRUCT,ListEntry);
DbgPrint("%d\n",pData->number);
ExFreePool(pData);
}
}
//************************************************************************************************************
大神们告诉我应该怎么办。在windows中好像可以用#define WIN32_LEAN_AND_MEAN这个,但是驱动开发中怎么做?
------解决方案--------------------
LIST_ENTRY,*PLIST_ENTRY;
不用定义了,已经定义了