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

Ntfs!NtfsVolumeCheckpointDpc函数分析到调用Ntfs!NtfsCheckpointAllVolumes函数

第一部分:

0: kd> g
Breakpoint 22 hit
Ntfs!NtfsVolumeCheckpointDpc:
f71413a6 33c0            xor     eax,eax
0: kd> dv
            Dpc = 0x00000000
DeferredContext = 0x10f9a2e0
SystemArgument1 = 0x01dbd5c9
SystemArgument2 = 0xffdff980
0: kd> kc
 #
00 Ntfs!NtfsVolumeCheckpointDpc
01 nt!KiTimerExpiration
02 nt!KiRetireDpcList
03 nt!KiIdleLoop

第二部分:


0: kd> g
Breakpoint 28 hit
nt!ExQueueWorkItem:
80af292a 55              push    ebp
0: kd> dv
       WorkItem = 0xf7169a9c
      QueueType = CriticalWorkQueue (0n0)
0: kd> dx -r1 ((ntkrnlmp!_WORK_QUEUE_ITEM *)0xf7169a9c)
((ntkrnlmp!_WORK_QUEUE_ITEM *)0xf7169a9c)                 : 0xf7169a9c [Type: _WORK_QUEUE_ITEM *]
    [+0x000] List             [Type: _LIST_ENTRY]
    [+0x008] WorkerRoutine    : 0xf717b1b6 [Type: void (*)(void *)]
    [+0x00c] Parameter        : 0x0 [Type: void *]
0: kd> u f717b1b6
Ntfs!NtfsCheckpointAllVolumes [d:\srv03rtm\base\fs\ntfs\verfysup.c @ 1335]:
f717b1b6 6848010000      push    148h
f717b1bb 68482b16f7      push    offset Ntfs!`string'+0x14c (f7162b48)
f717b1c0 e84303feff      call    Ntfs!__SEH_prolog (f715b508)
f717b1c5 8d85a8feffff    lea     eax,[ebp-158h]
f717b1cb 8945e4          mov     dword ptr [ebp-1Ch],eax
f717b1ce c645e200        mov     byte ptr [ebp-1Eh],0
f717b1d2 c645e300        mov     byte ptr [ebp-1Dh],0
f717b1d6 8b351c0016f7    mov     esi,dword ptr [Ntfs!_imp__KeGetCurrentIrql (f716001c)]

第三部分:

0: kd> g
Breakpoint 23 hit
Ntfs!NtfsCheckpointAllVolumes:
f717b1b6 6848010000      push    148h
1: kd> kc
 #
00 Ntfs!NtfsCheckpointAllVolumes
01 nt!ExpWorkerThread
02 nt!PspSystemThreadStartup
03 nt!KiThreadStartup

        for (Links = NtfsData.VcbQueue.Flink;
             Links != &NtfsData.VcbQueue;
             Links = Links->Flink) {

            ASSERT( FlagOn( IrpContext->TopLevelIrpContext->State, IRP_CONTEXT_STATE_OWNS_TOP_LEVEL ));

            Vcb = CONTAINING_RECORD(Links, VCB, VcbLinks);

            IrpContext->Vcb = Vcb;


1: kd> x ntfs!NtfsData
f7169980          Ntfs!NtfsData = struct _NTFS_DATA
1: kd> dx -r1 (*((Ntfs!_NTFS_DATA *)0xf7169980))
(*((Ntfs!_NTFS_DATA *)0xf7169980))                 [Type: _NTFS_DATA]
    [+0x000] NodeTypeCode     : 1792 [Type: short]
    [+0x002] NodeByteSize     : 504 [Type: short]
    [+0x004] DriverObject     : 0x89630390 : Driver "\FileSystem\Ntfs" [Type: _DRIVER_OBJECT *]
    [+0x008] VcbQueue         [Type: _LIST_ENTRY]
 
1: kd> dx -r1 (*((Ntfs!_LIST_ENTRY *)0xf7169988))
(*((Ntfs!_LIST_ENTRY *)0xf7169988))                 [Type: _LIST_ENTRY]
    [+0x000] Flink            : 0x8962e108 [Type: _LIST_ENTRY *]
    [+0x004] Blink            : 0x8962e108 [Type: _LIST_ENTRY *]


1: kd> dt ntfs!_vcb 0x8962e108-8
   +0x000 NodeTypeCode     : 0n1793
   +0x002 NodeByteSize     : 0n2008
   +0x004 VcbState         : 0x10031001
   +0x008 VcbLinks         : _LIST_ENTRY [ 0xf7169988 - 0xf7169988 ]
   +0x010 RootIndexScb     : 0xe1350658 _SCB
   +0x014 UsnJournal       : (null)
   +0x018 MftScb           : 0x895c5c40 _SCB
   +0x01c Mft2Scb          : 0x895c5968 _SCB
   +0x020 LogFileScb       : 0x89469700 _SCB
   +0x024 BitmapScb        : 0x895c4220 _SCB
   +0x028 AttributeDefTableScb : (null)
   +0x02c BadClusterFileScb : 0x8962ba10 _SCB
   +0x030 ExtendDirectory  : 0xe135ed20 _SCB
   +0x034 SecurityDescriptorStream : 0xe1362d20 _SCB
   +0x038 SecurityIdIndex  : 0xe13503f0 _SCB
   +0x03c SecurityDescriptorHashIndex : 0xe135ce68 _SCB


参考:
 dx -r1 ((Ntfs!_VCB *)0x8962e100)


第四部分:

VOID
NtfsCheckpointVolume (
    IN PIRP_CONTEXT IrpContext,
    IN PVCB Vcb,
    IN BOOLEAN OwnsCheckpoint,
    IN BOOLEAN CleanVolume,
    IN BOOLEAN FlushVolume,
    IN ULONG LfsFlags,
    IN LSN LastKnownLsn
    )

1: kd> t
Breakpoint 24 hit
Ntfs!NtfsCheckpointVolume:
f71d7f48 6834020000      push    234h
1: kd> kc
 #
00 Ntfs!NtfsCheckpointVolume
01 Ntfs!NtfsCheckpointAllVolumes
02 nt!ExpWorkerThread
03 nt!PspSystemThreadStartup
04 nt!KiThreadStartup
1: kd> dv
                IrpContext = 0xf78d2c28
                       Vcb = 0x8962e100
            OwnsCheckpoint = 0x00 ''
               CleanVolume = 0x00 ''
               FlushVolume = 0x01 ''
                  LfsFlags = 0
              LastKnownLsn = {0}


文章转载自:

http://aRVuXXF4.rfrnc.cn
http://USdYUa6I.rfrnc.cn
http://J4O00Sz9.rfrnc.cn
http://VQkrBTHA.rfrnc.cn
http://Q7ME6jBC.rfrnc.cn
http://HeLqIKFz.rfrnc.cn
http://hUIvi80w.rfrnc.cn
http://zSFkWQsG.rfrnc.cn
http://jCR4YmRI.rfrnc.cn
http://dsx0gUhR.rfrnc.cn
http://pX9UA0YN.rfrnc.cn
http://3yOUlCUO.rfrnc.cn
http://qm4iiHdn.rfrnc.cn
http://2jS24YOm.rfrnc.cn
http://ebRLOlwv.rfrnc.cn
http://hyeIwjkR.rfrnc.cn
http://F3E6TROQ.rfrnc.cn
http://37cthVJ5.rfrnc.cn
http://ft5Tp4jQ.rfrnc.cn
http://1L4TAWut.rfrnc.cn
http://CqxnRFn8.rfrnc.cn
http://EmF4DK0J.rfrnc.cn
http://DgNVcQ4v.rfrnc.cn
http://QdQ1MPv1.rfrnc.cn
http://Z0QdqiIx.rfrnc.cn
http://btPW85Fy.rfrnc.cn
http://yxZWKQJr.rfrnc.cn
http://rHnw2vKd.rfrnc.cn
http://D6SbnkXL.rfrnc.cn
http://tsHeLdiC.rfrnc.cn
http://www.dtcms.com/a/247228.html

相关文章:

  • ubuntu 挂载问题
  • 【51单片机】6. 定时器、按键切换流水灯时钟Demo
  • Harbor 2.12.2 and 2.12.3 初始化密码错误
  • 风控系统中,要调用第三方服务获取信息,很慢,如何解决?
  • Pytorch中view函数详解和工程实战示例
  • Vue + element实现电子围栏功能, 根据省市区选择围栏, 自定义围栏 ,手动输入地名围栏, 保存围栏,清除围栏,加载围栏,批量检测标点是否在围栏内。
  • 杭州电商代运营公司排名前十
  • 网络的那些事——初级——路由策略
  • FastDFS 分布式存储
  • Vue 3.6前瞻:响应式性能革命与Vapor模式展望
  • codeforces 2057D. Gifts Order
  • springboot3+mybatisplus(5)-backend-mybaitsplus+frontend-router
  • 7.8 Evaluating the finetuned LLM
  • Linux下OLLAMA安装卡住怎么办?
  • uni-app项目怎么实现多服务环境切换
  • LangChain--(1)
  • 如何将一个url地址打包成一个windows桌面版本的应用程序
  • 质因数分解_java
  • Redis哨兵机制
  • 基于SpringAI实现专家系统
  • echarts中给饼图加圆点
  • 关于深度学习网络中的归一化BN
  • 【Java面试笔记:实战】41、Java面试核心考点!AQS原理及应用生态全解析
  • 【亲测有效】MybatisPlus中MetaObjectHandler自动填充字段失效
  • 【cv学习笔记】YOLO系列笔记
  • 树莓派5 ubuntu 24.04 docker配置镜像Docker pull时报错:https://registry-1.docker.io/v2/
  • 海外广告投放|FB IG 速推帖子有效吗?
  • 测试过程中有哪些风险?
  • 3.4_1 流量控制、可靠传输与滑动窗口机制
  • 【Spring AI 1.0.0】Spring AI 1.0.0框架快速入门(2)——提示词