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

Ntfs!ReadIndexBuffer函数调用Ntfs!NtfsMapStream函数的参数FileOffset为什么是0

FileOffset = 0n0    为什么是0

0: kd> t
Breakpoint 1 hit
Ntfs!NtfsMapStream:
f717167a 55              push    ebp
0: kd> kc
 #
00 Ntfs!NtfsMapStream
01 Ntfs!ReadIndexBuffer
0: kd> dv
     IrpContext = 0xf793291c
            Scb = 0xe1363d20
     FileOffset = 0n0
         Length = 0x1000
            Bcb = 0xe13523a8
         Buffer = 0xe13523ac

    NtfsMapStream( IrpContext,
                   Scb,
                   LlBytesFromIndexBlocks( IndexBlock, Scb->ScbType.Index.IndexBlockByteShift ),
                   Scb->ScbType.Index.BytesPerIndexBuffer,
                   &Sp->Bcb,
                   &Sp->StartOfBuffer );

#define LlBytesFromIndexBlocks(B,S) (   \
    Int64ShllMod32((B), (S))            \
)

    [+0x05d] IndexBlockByteShift : 0xc [Type: unsigned char]


0: kd> t
Breakpoint 3 hit
Ntfs!ReadIndexBuffer:
f7173886 55              push    ebp
0: kd> kc
 #
00 Ntfs!ReadIndexBuffer
01 Ntfs!FindFirstIndexEntry
02 Ntfs!NtfsRestartIndexEnumeration
03 Ntfs!NtfsQueryDirectory

0: kd> dv
     IrpContext = 0xf793291c
            Scb = 0xe1363d20
     IndexBlock = 0n0
         Reread = 0x00 ''
             Sp = 0xe13523a8

0: kd> dv
     IrpContext = 0xf793291c
            Scb = 0xe1363d20
     IndexBlock = 0n0
         Reread = 0x00 ''
             Sp = 0xe13523a8            原来的是0xe13523a8-20=0xe1352388

0: kd> dx -r1 ((Ntfs!_INDEX_LOOKUP_STACK *)0xe13523a8)
((Ntfs!_INDEX_LOOKUP_STACK *)0xe13523a8)                 : 0xe13523a8 [Type: _INDEX_LOOKUP_STACK *]
    [+0x000] Bcb              : 0x0 [Type: void *]
    [+0x004] StartOfBuffer    : 0x0 [Type: void *]
    [+0x008] IndexHeader      : 0x0 [Type: _INDEX_HEADER *]
    [+0x00c] IndexEntry       : 0x0 [Type: _INDEX_ENTRY *]
    [+0x010] IndexBlock       : 0 [Type: __int64]
    [+0x018] CapturedLsn      : {0} [Type: _LARGE_INTEGER]


一个新的sp,数据全是0。

0: kd> kv
 # ChildEBP RetAddr  Args to Child              
00 f7932560 f7174231 f793291c e1363d20 00000000 Ntfs!ReadIndexBuffer+0xd8 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\fs\ntfs\indexsup.c @ 2827]
01 f7932590 f71774e8 f793291c e13523a8 e13559b0 Ntfs!FindFirstIndexEntry+0x1c7 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\fs\ntfs\indexsup.c @ 3449]
02 f79326b8 f717623d f793291c e1363eb8 e1363d20 Ntfs!NtfsRestartIndexEnumeration+0xc4 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\fs\ntfs\indexsup.c @ 1397]


        //
        //  Otherwise, read the index buffer pointed to by the current
        //  Index Entry.
        //

        ReadIndexBuffer( IrpContext,
                         Scb,
                         NtfsIndexEntryBlock((Sp-1)->IndexEntry),
                         FALSE,
                         Sp );


FileOffset = 0n0    为什么是0        END

http://www.xdnf.cn/news/616771.html

相关文章:

  • PPP 流程已经走到启动阶段并且成功进入了 “STAGE_START_PPP
  • Linux PXE批量装机+无人值守技术(自动化装机)
  • [特殊字符] GUNION SDK 接口调用方式说明(静态库 vs 动态库)
  • 树莓派的刷机和登录
  • 常见证书格式区别
  • 矩阵详解:线性代数在AI大模型中的核心支柱
  • win11 24H2 版本,运行.vbs错误:没有文件扩展“.vbs“的脚本引擎
  • 夺命充电何时休?电瓶车入室起火事件频发
  • Linux C/C++编程 —— 线程技术总结
  • 家政维修平台实战09:推送数据到多维表格
  • 得力DE-620K针式打印机打印速度不能调节维修一例
  • AI Engine Kernel and Graph Programming--知识分享6
  • 深度探讨:AI 的全能边界 —— 哪些任务仍超越当前技术范畴?
  • 高校外卖小程序,怎么落地实践?
  • echarts之折线柱状图
  • 【ISP算法精粹】ISP算法管线的预处理算法有哪些?
  • Linux之 SPI 驱动框架- spi-mem 框架
  • 虚拟化工具libvirt日志文件的结构化使用指南
  • Python 脚本执行命令的深度探索:方法、示例与最佳实践
  • 蓝桥杯2025.5.23每日一题-儿童数
  • 中科驭数携DPU全栈产品亮相福州数博会,赋能智算时代算力基建
  • Trae 的核心功能介绍
  • OS面试篇
  • BU9792驱动段式LCD
  • C++:无序容器
  • 第十四届蓝桥杯国赛PythonA题解
  • Ubuntu系统下,使用system函数运行终端指令,如何避免输入密码的方法
  • 大数据任务调度实战:DolphinScheduler 与 Airflow 深度解析与最佳实践
  • DAX权威指南4:时间智能计算
  • C++ 结构体封装模式与 Promise 链式调用:设计思想的异曲同工