当前位置: 首页 > news >正文

ntkrnlmp!_SHARED_CACHE_MAP结构中的成员DirtyPages=0x6(5)的一个例子和成员BcbList链表节点的数量一致


第一部分:

1: kd> g
Breakpoint 30 hit
Ntfs!DirtyPageRoutine:
f71451f2 55              push    ebp
1: kd> g
Breakpoint 33 hit
nt!CcGetDirtyPages+0x115:
80a15cd3 8b45c4          mov     eax,dword ptr [ebp-3Ch]
1: kd>  dt DIRTY_PAGE_ENTRY_V0 0x89539000+18+2c*6f
Ntfs!DIRTY_PAGE_ENTRY_V0
   +0x000 AllocatedOrNextFree : 0xffffffff
   +0x004 TargetAttribute  : 0x338
   +0x008 LengthOfTransfer : 0x1000
   +0x00c LcnsToFollow     : 0
   +0x010 Reserved         : 0
   +0x014 Vcn              : 0n16384
   +0x01c OldestLsn        : _LARGE_INTEGER 0x80ef7cb
   +0x024 LcnsForPage      : [1] 0n0


1: kd> dt DIRTY_PAGE_CONTEXT 0xf78d2aa4
Ntfs!DIRTY_PAGE_CONTEXT
   +0x000 DirtyPageTable   : 0xf78d2b90 _RESTART_POINTERS
   +0x004 DirtyPageIndex   : 0x44
   +0x008 OldestFileObject : 0x89455df0 _FILE_OBJECT
   +0x010 OldestLsn        : _LARGE_INTEGER 0x80ee220
   +0x018 Overflow         : 0 ''
1: kd> dx -id 0,0,899a2278 -r1 ((Ntfs!_RESTART_POINTERS *)0xf78d2b90)
((Ntfs!_RESTART_POINTERS *)0xf78d2b90)                 : 0xf78d2b90 [Type: _RESTART_POINTERS *]
    [+0x000] Resource         [Type: _ERESOURCE]
    [+0x038] Table            : 0x89537000 [Type: _RESTART_TABLE *]
    [+0x03c] SpinLock         : 0x0 [Type: unsigned long]
    [+0x040] ResourceInitialized : 0x1 [Type: unsigned char]
    [+0x041] DrainPending     : 0x0 [Type: unsigned char]
    [+0x042] Unused           [Type: unsigned char [6]]
1: kd> dx -id 0,0,899a2278 -r1 ((Ntfs!_RESTART_TABLE *)0x89537000)
((Ntfs!_RESTART_TABLE *)0x89537000)                 : 0x89537000 [Type: _RESTART_TABLE *]
    [+0x000] EntrySize        : 0x2c [Type: unsigned short]
    [+0x002] NumberEntries    : 0x80 [Type: unsigned short]
    [+0x004] NumberAllocated  : 0x71 [Type: unsigned short]
    [+0x006] Reserved         [Type: unsigned short [3]]
    [+0x00c] FreeGoal         : 0xffffffff [Type: unsigned long]
    [+0x010] FirstFree        : 0x1384 [Type: unsigned long]
    [+0x014] LastFree         : 0x15ec [Type: unsigned long]


1: kd> dt DIRTY_PAGE_ENTRY_V0 0x89537000+18+2c*70
Ntfs!DIRTY_PAGE_ENTRY_V0
   +0x000 AllocatedOrNextFree : 0xffffffff
   +0x004 TargetAttribute  : 0x338
   +0x008 LengthOfTransfer : 0x1000
   +0x00c LcnsToFollow     : 0
   +0x010 Reserved         : 0
   +0x014 Vcn              : 0n12288
   +0x01c OldestLsn        : _LARGE_INTEGER 0x80ef5c9
   +0x024 LcnsForPage      : [1] 0n0


1: kd> r
eax=00000000 ebx=00001000 ecx=080ef5c9 edx=080ef5c9 esi=895351b0  
eip=80a15cd3 esp=f78d2928 ebp=f78d298c iopl=0         nv up ei pl nz na pe nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00000206
nt!CcGetDirtyPages+0x115:
80a15cd3 8b45c4          mov     eax,dword ptr [ebp-3Ch] ss:0010:f78d2950=080ef5c9
1: kd> dt _bcb 895351b0
nt!_BCB
   +0x000 Dummy            : _MBCB
   +0x000 NodeTypeCode     : 0n765
   +0x002 Dirty            : 0x1 ''
   +0x003 Reserved         : 0 ''
   +0x004 ByteLength       : 0x1000
   +0x008 FileOffset       : _LARGE_INTEGER 0x3000
   +0x010 BcbLinks         : _LIST_ENTRY [ 0x894d0ea0 - 0x8950a0b8 ]
   +0x018 BeyondLastByte   : _LARGE_INTEGER 0x4000
   +0x020 OldestLsn        : _LARGE_INTEGER 0x80ef5c9
   +0x028 NewestLsn        : _LARGE_INTEGER 0x80ef5c9
   +0x030 Vacb             : (null)
   +0x034 PinCount         : 1
   +0x038 Resource         : _ERESOURCE
   +0x070 SharedCacheMap   : 0x894553a8 _SHARED_CACHE_MAP
   +0x074 BaseAddress      : (null)

1: kd> dx -id 0,0,899a2278 -r1 ((ntkrnlmp!_SHARED_CACHE_MAP *)0x894553a8)
((ntkrnlmp!_SHARED_CACHE_MAP *)0x894553a8)                 : 0x894553a8 [Type: _SHARED_CACHE_MAP *]
    [+0x000] NodeTypeCode     : 767 [Type: short]
    [+0x002] NodeByteSize     : 304 [Type: short]
    [+0x004] OpenCount        : 0x2 [Type: unsigned long]
    [+0x008] FileSize         : {20480} [Type: _LARGE_INTEGER]
    [+0x010] BcbList          [Type: _LIST_ENTRY]
    [+0x018] SectionSize      : {1048576} [Type: _LARGE_INTEGER]
    [+0x020] ValidDataLength  : {9223372036854775807} [Type: _LARGE_INTEGER]
    [+0x028] ValidDataGoal    : {9223372036854775807} [Type: _LARGE_INTEGER]
    [+0x030] InitialVacbs     [Type: _VACB * [4]]
    [+0x040] Vacbs            : 0x894553d8 [Type: _VACB * *]
    [+0x044] FileObject       : 0x89455500 [Type: _FILE_OBJECT *]
    [+0x048] ActiveVacb       : 0x0 [Type: _VACB *]
    [+0x04c] NeedToZero       : 0x0 [Type: void *]
    [+0x050] ActivePage       : 0x0 [Type: unsigned long]
    [+0x054] NeedToZeroPage   : 0x0 [Type: unsigned long]
    [+0x058] ActiveVacbSpinLock : 0x0 [Type: unsigned long]
    [+0x05c] VacbActiveCount  : 0x0 [Type: unsigned long]
    [+0x060] DirtyPages       : 0x6 [Type: unsigned long]

1: kd> g
Breakpoint 30 hit
Ntfs!DirtyPageRoutine:
f71451f2 55              push    ebp
1: kd> g
Breakpoint 33 hit
nt!CcGetDirtyPages+0x115:
80a15cd3 8b45c4          mov     eax,dword ptr [ebp-3Ch]
1: kd> dt DIRTY_PAGE_ENTRY_V0 0x89537000+18+2c*71
Ntfs!DIRTY_PAGE_ENTRY_V0
   +0x000 AllocatedOrNextFree : 0xffffffff
   +0x004 TargetAttribute  : 0x338
   +0x008 LengthOfTransfer : 0x1000
   +0x00c LcnsToFollow     : 0
   +0x010 Reserved         : 0
   +0x014 Vcn              : 0n8192
   +0x01c OldestLsn        : _LARGE_INTEGER 0x80ef80e
   +0x024 LcnsForPage      : [1] 0n0


1: kd> dt DIRTY_PAGE_ENTRY_V0 0x89537000+18+2c*72
Ntfs!DIRTY_PAGE_ENTRY_V0
   +0x000 AllocatedOrNextFree : 0xffffffff
   +0x004 TargetAttribute  : 0x338
   +0x008 LengthOfTransfer : 0x1000
   +0x00c LcnsToFollow     : 0
   +0x010 Reserved         : 0
   +0x014 Vcn              : 0n4096
   +0x01c OldestLsn        : _LARGE_INTEGER 0x80ef625
   +0x024 LcnsForPage      : [1] 0n0


1: kd> g
Breakpoint 30 hit
Ntfs!DirtyPageRoutine:
f71451f2 55              push    ebp
1: kd> g
Breakpoint 33 hit
nt!CcGetDirtyPages+0x115:
80a15cd3 8b45c4          mov     eax,dword ptr [ebp-3Ch]
1: kd> dt DIRTY_PAGE_ENTRY_V0 0x89537000+18+2c*73
Ntfs!DIRTY_PAGE_ENTRY_V0
   +0x000 AllocatedOrNextFree : 0xffffffff
   +0x004 TargetAttribute  : 0x338
   +0x008 LengthOfTransfer : 0x1000
   +0x00c LcnsToFollow     : 0
   +0x010 Reserved         : 0
   +0x014 Vcn              : 0n0
   +0x01c OldestLsn        : _LARGE_INTEGER 0x80ef4dd
   +0x024 LcnsForPage      : [1] 0n0

1: kd> g
Breakpoint 30 hit
Ntfs!DirtyPageRoutine:
f71451f2 55              push    ebp
1: kd> g
Breakpoint 33 hit
nt!CcGetDirtyPages+0x115:
80a15cd3 8b45c4          mov     eax,dword ptr [ebp-3Ch]
1: kd> dt DIRTY_PAGE_ENTRY_V0 0x89537000+18+2c*74
Ntfs!DIRTY_PAGE_ENTRY_V0
   +0x000 AllocatedOrNextFree : 0xffffffff
   +0x004 TargetAttribute  : 0x360
   +0x008 LengthOfTransfer : 0x1000
   +0x00c LcnsToFollow     : 0
   +0x010 Reserved         : 0
   +0x014 Vcn              : 0n0
   +0x01c OldestLsn        : _LARGE_INTEGER 0x80ef73c
   +0x024 LcnsForPage      : [1] 0n0

第二部分:

1: kd> dx -id 0,0,899a2278 -r1 ((ntkrnlmp!_SHARED_CACHE_MAP *)0x894553a8)
((ntkrnlmp!_SHARED_CACHE_MAP *)0x894553a8)                 : 0x894553a8 [Type: _SHARED_CACHE_MAP *]
    [+0x000] NodeTypeCode     : 767 [Type: short]
    [+0x002] NodeByteSize     : 304 [Type: short]
    [+0x004] OpenCount        : 0x1 [Type: unsigned long]
    [+0x008] FileSize         : {20480} [Type: _LARGE_INTEGER]
    [+0x010] BcbList          [Type: _LIST_ENTRY]
1: kd> dx -id 0,0,899a2278 -r1 (*((ntkrnlmp!_LIST_ENTRY *)0x894553b8))
(*((ntkrnlmp!_LIST_ENTRY *)0x894553b8))                 [Type: _LIST_ENTRY]
    [+0x000] Flink            : 0x8950a0b8 [Type: _LIST_ENTRY *]
    [+0x004] Blink            : 0x89535948 [Type: _LIST_ENTRY *]
1: kd> dx -id 0,0,899a2278 -r1 ((ntkrnlmp!_LIST_ENTRY *)0x8950a0b8)
((ntkrnlmp!_LIST_ENTRY *)0x8950a0b8)                 : 0x8950a0b8 [Type: _LIST_ENTRY *]
    [+0x000] Flink            : 0x895351c0 [Type: _LIST_ENTRY *]
    [+0x004] Blink            : 0x894553b8 [Type: _LIST_ENTRY *]
1: kd> dx -id 0,0,899a2278 -r1 ((ntkrnlmp!_LIST_ENTRY *)0x895351c0)
((ntkrnlmp!_LIST_ENTRY *)0x895351c0)                 : 0x895351c0 [Type: _LIST_ENTRY *]
    [+0x000] Flink            : 0x894d0ea0 [Type: _LIST_ENTRY *]
    [+0x004] Blink            : 0x8950a0b8 [Type: _LIST_ENTRY *]
1: kd> dx -id 0,0,899a2278 -r1 ((ntkrnlmp!_LIST_ENTRY *)0x894d0ea0)
((ntkrnlmp!_LIST_ENTRY *)0x894d0ea0)                 : 0x894d0ea0 [Type: _LIST_ENTRY *]
    [+0x000] Flink            : 0x8950af90 [Type: _LIST_ENTRY *]
    [+0x004] Blink            : 0x895351c0 [Type: _LIST_ENTRY *]
1: kd> dx -id 0,0,899a2278 -r1 ((ntkrnlmp!_LIST_ENTRY *)0x8950af90)
((ntkrnlmp!_LIST_ENTRY *)0x8950af90)                 : 0x8950af90 [Type: _LIST_ENTRY *]
    [+0x000] Flink            : 0x89535948 [Type: _LIST_ENTRY *]
    [+0x004] Blink            : 0x894d0ea0 [Type: _LIST_ENTRY *]
1: kd> dx -id 0,0,899a2278 -r1 ((ntkrnlmp!_LIST_ENTRY *)0x89535948)
((ntkrnlmp!_LIST_ENTRY *)0x89535948)                 : 0x89535948 [Type: _LIST_ENTRY *]
    [+0x000] Flink            : 0x894553b8 [Type: _LIST_ENTRY *]
    [+0x004] Blink            : 0x8950af90 [Type: _LIST_ENTRY *]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/254582.html

相关文章:

  • Git版本控制详细资料
  • MATLAB实现Gardner位同步算法
  • Docker 镜像与容器的区别
  • ROS学习之服务通信
  • Android11 Settings详解
  • 【统计术语】
  • Dart 类型系统与 GetX 类型写法完整指南
  • yarn create vite报错:文件名、目录名或卷标语法不正确。 error Command failed.
  • 【嵌入式】鲁班猫玩法大全
  • E结构体基础.go
  • 01.线性代数是如何将复杂的数据结构转化为可计算的数学问题,这个过程是如何进行的
  • FPGA基础 -- Verilog 结构建模之端口的不同位宽处理机制
  • flink如何基于Pekko实现RPC调用
  • openKylin适配RISC-V高性能服务器芯片,携手睿思芯科共拓智算新蓝海
  • ROS学习之动作通信
  • LangChain4j入门学习项目
  • 解决Vue再浏览器的控制台中更新属性不生效
  • Zephyr boot
  • 电池自动点焊机:技术革新下的电池制造核心引擎
  • FastMCP框架进行MCP开发:(一)基础环境搭建及测试
  • 新生活的开启:从 Trae AI 离开后的三个月
  • 如何在 Windows 上实时显示键盘操作?
  • C++ 面向对象特性详解:继承机制
  • Oracle EBS R12.1.3无法打开WEBADI界面
  • WHAT - JavaScript bind vs call vs apply(包括在箭头函数中vs在普通函数中)
  • Windows 下 C++ 线程同步与异步有哪些方式
  • 优化 Python 爬虫性能:异步爬取新浪财经大数据
  • 苍穹外卖-2025 完成基础配置环节(详细图解)
  • Cursor Rules 的核心定位与作用 DevOps是
  • 代理 AI 时代的隐私重构:从边界控制到信任博弈