ListEntry 遍历宏

本文详细介绍了如何使用自定义搜索列表函数MySearchList来查找特定实例ID的过滤器上下文。通过遍历AdvFcbHeader->FilterContexts列表,并检查每个元素的OwnerId和InstanceId属性,最终返回匹配条件的过滤器上下文。

 #define MySearchList(pHdr, Ptr) \
    for ( Ptr = (pHdr)->Flink;  Ptr != (pHdr);  Ptr = Ptr->Flink )


if ( ARGUMENT_PRESENT(InstanceId) ) {



        MySearchList (&AdvFcbHeader->FilterContexts, list) {


            ctx  = CONTAINING_RECORD(list, FSRTL_PER_STREAM_CONTEXT, Links);
            if (ctx->OwnerId == OwnerId && ctx->InstanceId == InstanceId) {


                rtnCtx = ctx;
                break;
            }
        }

    } 
kd> x nt!MmPfnDatabase fffff805`7b8fc500 nt!MmPfnDatabase = <no type information> kd> dt _mmpfn fffff805`7b8fc500+0x460f7*0x30 nt!_MMPFN +0x000 ListEntry : _LIST_ENTRY [ 0x470348fa`8b4ce3f7 - 0xc4034900`d7834908 ] +0x000 TreeNode : _RTL_BALANCED_NODE +0x000 u1 : <anonymous-tag> +0x008 PteAddress : 0xc4034900`d7834908 _MMPTE +0x008 PteLong : 0xc4034900`d7834908 +0x010 OriginalPte : _MMPTE +0x018 u2 : _MIPFNBLINK +0x020 u3 : <anonymous-tag> +0x024 NodeBlinkLow : 0x1047 +0x026 Unused : 0y1001 +0x026 Unused2 : 0y0100 +0x027 ViewCount : 0x83 '' +0x027 NodeFlinkLow : 0x83 '' +0x027 ModifiedListBucketIndex : 0y0011 +0x027 AnchorLargePageSize : 0y11 +0x028 u4 : <anonymous-tag> kd> dt _mmpfn fffff805`7b8fc500+0x4609*0x30 nt!_MMPFN +0x000 ListEntry : _LIST_ENTRY [ 0x006f006c`006c0041 - 0x00000064`00650077 ] +0x000 TreeNode : _RTL_BALANCED_NODE +0x000 u1 : <anonymous-tag> +0x008 PteAddress : 0x00000064`00650077 _MMPTE +0x008 PteLong : 0x00000064`00650077 +0x010 OriginalPte : _MMPTE +0x018 u2 : _MIPFNBLINK +0x020 u3 : <anonymous-tag> +0x024 NodeBlinkLow : 0x54 +0x026 Unused : 0y0101 +0x026 Unused2 : 0y0110 +0x027 ViewCount : 0 '' +0x027 NodeFlinkLow : 0 '' +0x027 ModifiedListBucketIndex : 0y0000 +0x027 AnchorLargePageSize : 0y00 +0x028 u4 : <anonymous-tag> kd> dx -id 0,0,ffffbd046545f1c0 -r1 (*((ntkrnlmp!_LIST_ENTRY *)0xfffff8057c61f350)) (*((ntkrnlmp!_LIST_ENTRY *)0xfffff8057c61f350)) [Type: _LIST_ENTRY] [+0x000] Flink : 0x470348fa8b4ce3f7 [Type: _LIST_ENTRY *] [+0x008] Blink : 0xc4034900d7834908 [Type: _LIST_ENTRY *]
最新发布
07-21
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值