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

0x90属性中的属性名$I30和Scb->AttributeName的关系

0x90属性中的属性名$I30和Scb->AttributeName的关系

1: kd> db 0xc431a400+38+60+68
c431a500  90 00 00 00 a8 01 00 00-00 04 18 00 00 00 01 00  ................
c431a510  88 01 00 00 20 00 00 00-24 00 49 00 33 00 30 00  .... ...$.I.3.0.

                NextScb = NtfsCreateScb( IrpContext,
                                         NextFcb,
                                         $INDEX_ALLOCATION,
                                         &NtfsFileNameIndex,
                                         FALSE,
                                         NULL );

./base/fs/ntfs/ntfsdata.c:142:const UNICODE_STRING NtfsFileNameIndex = CONSTANT_UNICODE_STRING( L"$I30" );


PSCB
NtfsCreateScb (
    IN PIRP_CONTEXT IrpContext,
    IN PFCB Fcb,
    IN ATTRIBUTE_TYPE_CODE AttributeTypeCode,
    IN PCUNICODE_STRING AttributeName,
    IN BOOLEAN ReturnExistingOnly,
    OUT PBOOLEAN ReturnedExistingScb OPTIONAL
    )


        //
        //  If the attribute name exists then allocate a buffer for the
        //  attribute name and iniitalize it.
        //

        if (AttributeName->Length != 0) {

            //
            //  The typical case is the $I30 string.  If this matches then
            //  point to a common string.
            //

            if ((AttributeName->Length == NtfsFileNameIndex.Length) &&
                (RtlEqualMemory( AttributeName->Buffer,
                                 NtfsFileNameIndex.Buffer,
                                 AttributeName->Length ) )) {

                Scb->AttributeName = NtfsFileNameIndex;

            } else {

                Scb->AttributeName.Length = AttributeName->Length;
                Scb->AttributeName.MaximumLength = (USHORT)(AttributeName->Length + sizeof( WCHAR ));

                Scb->AttributeName.Buffer = UnwindStorage[1] =
                    NtfsAllocatePool(PagedPool, AttributeName->Length + sizeof( WCHAR ));

                RtlCopyMemory( Scb->AttributeName.Buffer, AttributeName->Buffer, AttributeName->Length );
                Scb->AttributeName.Buffer[AttributeName->Length / sizeof( WCHAR )] = L'\0';
            }
        }

0: kd> dx -r1 ((Ntfs!_SCB *)0x89797ce8)
((Ntfs!_SCB *)0x89797ce8)                 : 0x89797ce8 [Type: _SCB *]
    [+0x000] Header           [Type: _NTFS_ADVANCED_FCB_HEADER]
    [+0x040] FcbLinks         [Type: _LIST_ENTRY]
    [+0x048] Fcb              : 0x898f1e00 [Type: _FCB *]
    [+0x04c] Vcb              : 0x895d5100 [Type: _VCB *]
    [+0x050] ScbState         : 0x100006f0 [Type: unsigned long]
    [+0x054] NonCachedCleanupCount : 0x0 [Type: unsigned long]
    [+0x058] CleanupCount     : 0x0 [Type: unsigned long]
    [+0x05c] CloseCount       : 0x1 [Type: unsigned long]
    [+0x060] ShareAccess      [Type: _SHARE_ACCESS]
    [+0x07c] AttributeTypeCode : 0x80 [Type: unsigned long]
    [+0x080] AttributeName    : "" [Type: _UNICODE_STRING]
    [+0x088] FileObject       : 0x89529610 [Type: _FILE_OBJECT *]
    [+0x08c] NonpagedScb      : 0x898f2830 [Type: _SCB_NONPAGED *]
    [+0x090] Mcb              [Type: _NTFS_MCB]
    [+0x0a8] McbStructs       [Type: NTFS_MCB_INITIAL_STRUCTS]
    [+0x0f0] CompressionUnit  : 0x0 [Type: unsigned long]
    [+0x0f4] AttributeFlags   : 0x0 [Type: unsigned short]
    [+0x0f6] CompressionUnitShift : 0x0 [Type: unsigned char]
    [+0x0f7] PadUchar         : 0x0 [Type: unsigned char]
    [+0x0f8] ValidDataToDisk  : 0 [Type: __int64]
    [+0x100] TotalAllocated   : 10665984 [Type: __int64]
    [+0x108] EofListHead      [Type: _LIST_ENTRY]
    [+0x110] CcbQueue         [Type: _LIST_ENTRY]
    [+0x118] ScbSnapshot      : 0x0 [Type: _SCB_SNAPSHOT *]
    [+0x11c] EncryptionContext : 0x0 [Type: void *]
    [+0x120] EncryptionContextLength : 0x0 [Type: unsigned long]
    [+0x124] ScbPersist       : 0x0 [Type: unsigned long]
    [+0x128] IoAtEofThread    : 0x0 [Type: unsigned long *]
    [+0x130] ScbType          [Type: __unnamed]

相关文章:

  • vue3+element-plus+pinia完整搭建好看简洁的管理后台
  • 【愚公系列】《Manus极简入门》054-家庭冲突调解师:“家庭和谐使者”
  • 1998-2023年各地级市地区生产总值、地级市GDP数据(全市)
  • 杨校老师竞赛课之青科赛GOC3-4年级组模拟题
  • 【博通芯片方案】调试指令详解版二(无线)
  • C++学习:六个月从基础到就业——多线程编程:线程池实现
  • day26- 系统编程之 文件IO(II) 及 文件属性
  • DeepSeek:开启IT领域人效管理新时代
  • 【无标题】西门子S7-1500PLC与西门子V90 PN伺服通讯控制项目程序项目程序,共有8轴,编码器信号直接输入到变频器内。
  • win11远程桌面设置60fps无效
  • 12kV 环保气体绝缘交流金属封闭开关设备现场交流耐压试验规范
  • 「Python教案」运算符的使用
  • 【详解自定义类型:联合和枚举】:联合体类型的声明、特点、大小的计算,枚举类型的声明、优点和使用
  • 2023河南CCPC省赛vp部分补题
  • [Java恶补day3] 128. 最长连续序列
  • 【C语言】复习~动态内存管理
  • python线性回归
  • 国标GB28181设备管理软件EasyGBS视频监控系统打造工厂可视化监管场景解决方案
  • HTML应用指南:利用POST请求获取全国中通快递服务网点位置信息
  • 使用Python复制Word文档样式并生成新文档
  • 广州网站建设/典型十大优秀网络营销案例
  • 网站开发的经济可行性/网上销售
  • 做企业网站需要什么/google广告
  • 北京网站建设设计/竞价外包运营
  • 防城港网站建设/2023年最新新闻简短摘抄
  • 怎样做视频网站/文库百度登录入口