zoukankan      html  css  js  c++  java
  • LIST_ENTRY使用

     

    VOID LinkListTest()

    {

           LIST_ENTRY linkListHead;

           //初始化链表

           InitializeListHead(&linkListHead);

     

           PMYDATASTRUCT pData;

           ULONG i = 0;

           //在链表中插入10个元素

           KdPrint(("Begin insert to link list"));

           for (i=0 ; i<10 ; i++)

           {

                  pData = (PMYDATASTRUCT)

                         ExAllocatePool(PagedPool,sizeof(MYDATASTRUCT));

                  pData->number = i;

                  InsertHeadList(&linkListHead,&pData->ListEntry);

           }

     

           //从链表中取出,并显示

           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 pLink=NULL;
     for(pLink = glinkListRule.Flink; pLink !=(PLIST_ENTRY) &glinkListRule.Flink; pLink = pLink->Flink)
     {
      pRegPrtRule pData= CONTAINING_RECORD(pLink,RegPrtRule,ListEntry);
      
     }

  • 相关阅读:
    DB9 ------ 接口定义
    以太网 ------ Auto-Negotiation(自动协商)
    Qt ------ 添加某个功能,比如(QSerialPort)注意事项
    Modbus
    Centos7.5 安装JDK1.8 步骤
    Kafka 消息中间件
    使用RabbitMQ实现分布式事务
    RabbitMq的环境安装
    RabbitMQ消息中间件的用法
    基于Docker+Jenkins实现自动化部署
  • 原文地址:https://www.cnblogs.com/ahuo/p/1389484.html
Copyright © 2011-2022 走看看