Ntfs!LfsReadRestart函数分析得到Ntfs!LFS_RESTART_PAGE_HEADER

第一部分:

0: kd> p
Ntfs!LfsPinOrMapData+0x8c:
f71797f6 ff15a40016f7    call    dword ptr [Ntfs!_imp__CcPinRead (f71600a4)]
0: kd> t
nt!CcPinRead:
80bf9a5a 6a2c            push    2Ch
0: kd> kc
#
00 nt!CcPinRead
01 Ntfs!LfsPinOrMapData
02 Ntfs!LfsReadRestart
03 Ntfs!LfsRestartLogFile
04 Ntfs!LfsOpenLogFile
05 Ntfs!NtfsStartLogFile
06 Ntfs!NtfsMountVolume
07 Ntfs!NtfsCommonFileSystemControl
08 Ntfs!NtfsFspDispatch
09 nt!ExpWorkerThread
0a nt!PspSystemThreadStartup
0b nt!KiThreadStartup
0: kd> dv
FileObject = 0x89469688
FileOffset = 0xf78d68b0 {0}
Length = 0x200
Flags = 1
Bcb = 0xf78d6900

    //
//  Get pointer to SharedCacheMap.
//

    SharedCacheMap = FileObject->SectionObjectPointer->SharedCacheMap;

第二部分:

0: kd> dv
FileObject = 0x89469688
FileOffset = 0xf78d68b0 {0}
Length = 0x200
Flags = 1

          MyBcb = 0x00000000

            //
//  Call local routine to Map or Access the file data.  If we cannot map
//  the data because of a Wait condition, return FALSE.
//

            if (!CcPinFileData( FileObject,
&LocalFileOffset,
Length,
(BOOLEAN)!FlagOn(SharedCacheMap->Flags, MODIFIED_WRITE_DISABLED),
FALSE,
Flags,
CurrentBcbPtr,
&LocalBuffer,
&BeyondLastByte )) {

0: kd> p
nt!CcPinRead+0xbf:
80bf9b19 e8c0b0e1ff      call    nt!CcPinFileData (80a14bde)
0: kd> p
nt!CcPinRead+0xc4:
80bf9b1e 84c0            test    al,al
0: kd> r
eax=f78d6801

第三部分:

dv
LocalBuffer = 0xc1140000

0: kd> dt lfs_restart_page_header 0xc1140000
Ntfs!LFS_RESTART_PAGE_HEADER
+0x000 MultiSectorHeader : _MULTI_SECTOR_HEADER
+0x008 ChkDskLsn        : _LARGE_INTEGER 0x0
+0x010 SystemPageSize   : 0x1000
+0x014 LogPageSize      : 0x1000
+0x018 RestartOffset    : 0x30
+0x01a MinorVersion     : 0n1
+0x01c MajorVersion     : 0n1
+0x01e UpdateSequenceArray : [1] 9


0: kd> dd 0xc1140000
c1140000  52545352 0009001e 00000000 00000000
c1140010  00001000 00001000 00010030 00090001
c1140020  00000000 00000000 00000000 00000000
c1140030  08109f97 00000000 ffff0001 00020000
c1140040  00000028 004000e0 04000000 00000000
c1140050  00000068 00400030 85e12259 00000000
c1140060  00000000 00000000 00000000 00000000
c1140070  08109f8c 00000000 08109f97 00000000
0: kd> db 0xc1140000
c1140000  52 53 54 52 1e 00 09 00-00 00 00 00 00 00 00 00  RSTR............
c1140010  00 10 00 00 00 10 00 00-30 00 01 00 01 00 09 00  ........0.......
c1140020  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
c1140030  97 9f 10 08 00 00 00 00-01 00 ff ff 00 00 02 00  ................
c1140040  28 00 00 00 e0 00 40 00-00 00 00 04 00 00 00 00  (.....@.........
c1140050  68 00 00 00 30 00 40 00-59 22 e1 85 00 00 00 00  h...0.@.Y"......
c1140060  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
c1140070  8c 9f 10 08 00 00 00 00-97 9f 10 08 00 00 00 00  ................
0: kd> db 0xc1140000+80
c1140080  ff ff ff ff 00 00 00 00-00 00 00 00 08 00 00 00  ................
c1140090  4e 00 54 00 46 00 53 00-00 00 00 00 00 00 00 00  N.T.F.S.........
c11400a0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
c11400b0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
c11400c0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
c11400d0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
c11400e0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................
c11400f0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00  ................

0: kd> dt lfs_restart_area 0xc1140000+30
Ntfs!LFS_RESTART_AREA
+0x000 CurrentLsn       : _LARGE_INTEGER 0x8109f97
+0x008 LogClients       : 1
+0x00a ClientFreeList   : 0xffff
+0x00c ClientInUseList  : 0
+0x00e Flags            : 2
+0x010 SeqNumberBits    : 0x28
+0x014 RestartAreaLength : 0xe0
+0x016 ClientArrayOffset : 0x40
+0x018 FileSize         : 0n67108864
+0x020 LastLsnDataLength : 0x68
+0x024 RecordHeaderLength : 0x30
+0x026 LogPageDataOffset : 0x40
+0x028 RestartOpenLogCount : 0x85e12259
+0x02c LastFailedFlushStatus : 0
+0x030 LastFailedFlushOffset : 0n0
+0x038 LastFailedFlushLsn : _LARGE_INTEGER 0x0
+0x040 LogClientArray   : [1] _LFS_CLIENT_RECORD
0: kd> dx -id 0,0,899a2278 -r1 (*((Ntfs!_LFS_CLIENT_RECORD (*)[1])0xc1140070))
(*((Ntfs!_LFS_CLIENT_RECORD (*)[1])0xc1140070))                 [Type: _LFS_CLIENT_RECORD [1]]
[0]              [Type: _LFS_CLIENT_RECORD]
0: kd> dx -id 0,0,899a2278 -r1 (*((Ntfs!_LFS_CLIENT_RECORD *)0xc1140070))
(*((Ntfs!_LFS_CLIENT_RECORD *)0xc1140070))                 [Type: _LFS_CLIENT_RECORD]
[+0x000] OldestLsn        : {135307148} [Type: _LARGE_INTEGER]
[+0x008] ClientRestartLsn : {135307159} [Type: _LARGE_INTEGER]
[+0x010] PrevClient       : 0xffff [Type: unsigned short]
[+0x012] NextClient       : 0xffff [Type: unsigned short]
[+0x014] SeqNumber        : 0x0 [Type: unsigned short]
[+0x016] AlignWord        : 0x0 [Type: unsigned short]
[+0x018] AlignDWord       : 0x0 [Type: unsigned long]
[+0x01c] ClientNameLength : 0x8 [Type: unsigned long]
[+0x020] ClientName       [Type: unsigned short [64]]
0: kd> dx -id 0,0,899a2278 -r1 (*((Ntfs!unsigned short (*)[64])0xc1140090))
(*((Ntfs!unsigned short (*)[64])0xc1140090))                 [Type: unsigned short [64]]
[0]              : 0x4e [Type: unsigned short]
[1]              : 0x54 [Type: unsigned short]
[2]              : 0x46 [Type: unsigned short]
[3]              : 0x53 [Type: unsigned short]
0: kd> db 0xc1140090
c1140090  4e 00 54 00 46 00 53 00-00 00 00 00 00 00 00 00  N.T.F.S.........

第四部分:


0: kd> dt Shared_Cache_Map 0x89469530
nt!SHARED_CACHE_MAP
+0x000 NodeTypeCode     : 0n767
+0x002 NodeByteSize     : 0n304
+0x004 OpenCount        : 1
+0x008 FileSize         : _LARGE_INTEGER 0x4000000
+0x010 BcbList          : _LIST_ENTRY [ 0x894d1400 - 0x894d1208 ]
+0x018 SectionSize      : _LARGE_INTEGER 0x4000000
+0x020 ValidDataLength  : _LARGE_INTEGER 0x7fffffff`ffffffff
+0x028 ValidDataGoal    : _LARGE_INTEGER 0x7fffffff`ffffffff
+0x030 InitialVacbs     : [4] (null)
+0x040 Vacbs            : 0x89469320  -> 0x894d1008 _VACB

0: kd> dt subsection 0x899bf650+30
nt!SUBSECTION
+0x000 ControlArea      : 0x899bf650 _CONTROL_AREA
+0x004 u                : __unnamed
+0x008 StartingSector   : 0
+0x00c NumberOfFullSectors : 0x4000
+0x010 SubsectionBase   : 0xe138d000 _MMPTE
+0x014 UnusedPtes       : 0
+0x018 PtesInSubsection : 0x4000
+0x01c NextSubsection   : (null)

0: kd> dd 0xe138d000
e138d000  0a0ee921 fdbe6cc0 fdbe6cc0 fdbe6cc0
e138d010  fdbe6cc0 fdbe6cc0 fdbe6cc0 fdbe6cc0


0: kd> !dc a0ee000
# a0ee000 52545352 0009001e 00000000 00000000 RSTR............
# a0ee010 00001000 00001000 00010030 00090001 ........0.......
# a0ee020 00000000 00000000 00000000 00000000 ................
# a0ee030 08109f97 00000000 ffff0001 00020000 ................
# a0ee040 00000028 004000e0 04000000 00000000 (.....@.........
# a0ee050 00000068 00400030 85e12259 00000000 h...0.@.Y"......
# a0ee060 00000000 00000000 00000000 00000000 ................
# a0ee070 08109f8c 00000000 08109f97 00000000 ................


0: kd> !dc a0ee000+80*1f
# a0eef80 00000000 00000000 00000000 00000000 ................
# a0eef90 00000000 00000000 00000000 00000000 ................
# a0eefa0 00000000 00000000 00000000 00000000 ................
# a0eefb0 00000000 00000000 00000000 00000000 ................
# a0eefc0 00000000 00000000 00000000 00000000 ................
# a0eefd0 00000000 00000000 00000000 00000000 ................
# a0eefe0 00000000 00000000 00000000 00000000 ................
# a0eeff0 00000000 00000000 00000000 00000000 ................
0: kd> !dc a0ee000+80*20
# a0ef000 e135ff48 00000001 e135c2f0 899c59a8 H.5.......5..Y..
# a0ef010 00000001 00000001 00000000 00000000 ................
# a0ef020 00000000 00000000 e1360034 00000000 ........4.6.....
# a0ef030 ffffffff 00000007 00000000 00000000 ................
# a0ef040 00000000 00000000 00000000 00000000 ................
# a0ef050 00000000 00000000 00000000 00000000 ................
# a0ef060 00000000 00000000 00000000 00000000 ................
# a0ef070 00000000 00000000 00000000 00000000 ................

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

skywalking-agent-docker镜像

FROM centos:7.9.2009 USER root# 定义 Arthas 目录环境变量 ENV ARTHAS_HOME/opt/arthas# 更改 YUM 源并清理缓存 RUN mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak && \rm -rf /etc/yum.repos.d/* && \curl -o /etc/yum.rep…

数据库开发运维的集成:弥合开发与运维之间的鸿沟

在传统的软件开发工作流程中,数据库变更往往是事后才考虑的问题。应用程序代码遵循定义明确的开发运维实践,包括版本控制、自动测试和持续部署,而数据库变更则经常是由数据库管理员手动执行的高风险操作。这种脱节造成了瓶颈,带来…

PiscTrace应用:从 YOLO-Pose 到深蹲与引体向上计数:实时健身动作分析与实现

随着健身行业的发展,越来越多的智能应用涌现,用于帮助健身者更好地记录和分析运动情况。特别是在体能训练中,俯卧撑和引体向上是两个非常常见的动作,它们通常用来锻炼上半身力量和耐力。为了使训练更加科学和高效,实时…

【unity】webCanvas.enabled = false;和webCanvas.gameObject.SetActive(false);的优缺点比较

在 Unity 中,webCanvas.gameObject.SetActive(false) 和 webCanvas.enabled false 是两种不同的隐藏 UI 的方式,它们的核心区别在于作用范围和对组件状态的影响。理解这些差异能帮助你避免初始化失败、性能问题和逻辑错误。 1核心区别 gameObject.SetAc…

深入探索 pnpm:高效磁盘利用与灵活的包管理解决方案

引言 在现代 JavaScript 开发中,依赖管理效率直接影响开发体验。传统工具如 npm 和 yarn 在大型项目中常面临磁盘冗余和性能瓶颈。pnpm(Performant npm)通过创新的硬链接和符号链接机制,解决了这些痛点。本文将深入解析 pnpm 的核…

Hive MetaStore的实现和优化

在大数据领域,数据管理与存储至关重要,Hive MetaStore(HMS)作为 Hive 数据仓库的核心组件,承担着元数据管理的关键职责。随着数据规模不断膨胀,其性能与稳定性面临挑战。本文将深入剖析 HMS 的实现机制&…

一文读懂动态规划:多种经典问题和思路

一、动态规划算法的思想与核心概念框架 1. 动态规划的基本思想 动态规划(Dynamic Programming, DP)是一种通过将复杂问题分解为重叠子问题,并利用子问题的解来高效解决原问题的方法。其核心思想是避免重复计算,通过存储中间结果&a…

阿幸课堂随机点名

代码功能 这个是一个HTML网页端,简单来说就是可以双击之后运行进行点名。 当然,不局限于课堂点名 代码功能 Excel 导入增强: 增加了列选择器,可以指定从哪一列读取学生姓名 增加了起始行选择器,可以跳过标题行或其…

LeetCode 560: 和为K的子数组

题目描述给定一个整数数组 nums 和一个整数 k,请统计并返回该数组中和为 k 的连续子数组的个数。示例 1:输入:nums [1,1,1], k 2 输出:2示例 2:输入:nums [1,2,3], k 3 输出:2提示&#xff…

微软官方C++构建工具:历史演变、核心组件与现代实践指南

引言:C构建工具的战略意义 在Windows生态系统中,​​微软C构建工具​​(Microsoft C Build Tools)构成了数百万开发者和应用程序的技术基石。从早期的MS-DOS命令行工具到如今支持​​跨平台开发​​的现代化工具链,微…

探索Cocos_CoilTheRope:一款创新的游戏引擎扩展项目

探索Cocos_CoilTheRope:一款创新的游戏引擎扩展项目 去发现同类优质开源项目:https://gitcode.com/ 是一个基于Cocos2d-x游戏引擎的扩展库,旨在为开发者提供一种简便的方法来实现绳子缠绕和物理交互效果。该项目由DreamLXW开发并维护,为游戏…

爬虫-正则表达式

在线正则表达式测试OSCHINA.NET在线工具,ostools为开发设计人员提供在线工具,提供jsbin在线 CSS、JS 调试,在线 Java API文档,在线 PHP API文档,在线 Node.js API文档,Less CSS编译器,MarkDown编译器等其他在线工具https://tool.oschina.net/…

【BTC】数据结构

目录 那比特币区块链的组织形式到底是以链表的形式,还是树的形式呢? 区块头和区块体与默克尔树的关系 默克尔证明详解 区块链和链表最大的区别就是区块链用哈希指针代替了普通指针。 链表的指针就是指向一个结构体在内存中的地址,而哈希指…

飞算 JavaAI:让 Java 开发效率飙升的智能助手,日常开发全场景应用指南

飞算 JavaAI:让 Java 开发效率飙升的智能助手 ,日常开发全场景应用指南 在 Java 开发的日常工作中,开发者常常面临各类重复性劳动与逻辑复杂度挑战。飞算 JavaAI 作为专注于 Java 领域的智能开发助手,能够覆盖从代码生成到项目维护…

8.2 文档预处理模块(二)

一、从0开始:简易RAG实现 在构建更复杂的 RAG 架构之前,我们先从最基础的版本入手。整个流程可以分为以下几个关键步骤: 1.数据导入:加载并预处理原始文本数据,为后续处理做好准备。 2.文本分块:将长文本…

【系统与工具】Linux——Linux简介、安装、简单使用

计算机概论与Linux简介 计算机概论Linux介绍与版本 Linux的规划与安装 Linux与硬件平台密切相关规划硬件与Linux安装 主机规划与磁盘分区安装CentOS、多重引导 简单使用 帮助手册文本编辑器关机 0. Linux介绍与版本 操作系统(Linux):高效…

从视频数据到数字孪生:如何构建虚拟与现实的桥梁?

概述 视频数据与三维场景融合渲染技术通过将动态视频与静态三维模型结合,利用GPU加速、WebGL渲染、数字孪生等技术,实现虚拟与现实的交互式融合。该技术广泛应用于智慧城市、工业监控、虚拟现实、游戏特效等领域,能够提升场景的直观性和用户沉…

【笔记】开源 AI Agent 项目 V1 版本 [新版] 部署 日志

kortix-ai/suna at v1 一、最新版本号 V1 二、部署截图 本地开发环境仍然依赖于 Poetry 环境&#xff1a; &#xff08;Python>3.11,<3.13&#xff09; 创建本地 Poetry 虚拟环境 Python 多版本环境治理理念驱动的系统架构设计&#xff1a;三维治理、四级隔离、五项自…

NumPy-梯度与导数计算详解

NumPy-梯度与导数计算详解一、梯度与导数的基本概念1. 导数的定义2. 梯度的定义二、NumPy中的梯度计算函数&#xff1a;np.gradient()1. 函数语法2. 一维数组的梯度计算3. 多维数组的梯度计算三、基于梯度的导数近似方法1. 前向差分2. 中心差分四、实际应用场景1. 函数优化2. 数…

Redis架构安全

先学习&#xff1a;Redis架构简介-CSDN博客 Redis压测 Redis一般应用于高并发的场景&#xff0c;所以一定要对Redis的性能做压测。 Redis提供了压测脚本redis-benchmark&#xff0c;可以对Redis进行快速的基准测试。 # 20个线程&#xff0c;100W个请求&#xff0c;测试redi…