Welcome

首页 / 软件开发 / C++ / Win98内核分析(Kernel32)

Win98内核分析(Kernel32)2008-01-05IBMBIO各模块的介绍。

一、环境管理块emb

要读入EMB,可使用INT 21 的52H号功能。调用该中断后,EMB的地址会放在ES:BX中。具体用法如下:

C:>debug

-a

0F6C:0100 mov ah,52

0F6C:0102 int 21

0F6C:0104 int 3

0F6C:0105

-g=0100 0104 //运行100至104的命令

AX=5200 BX=0026 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000

DS=0F6C ES=00C9 SS=0F6C CS=0F6C IP=0104 NV UP EI PL NZ NA PO NC

0F6C:0104 CC INT 3

-d00c9:0024 //显示EMB的内容

00C9:0020 11 02 46 13-C9 00 CC 00 C9 00 4C 00 ..F...

....L.

00C9:0030 70 00 16 00 70 00 00 02-6D 00 C9 00 00 00 97 D5 p...p...m.

第一个MCB地址 0211:0000

FILES运行环境链链头地址 00C9:00CC

当前标准输入设备标题首址 0070:0016

BUFFERS运行环境链链头地址 00C9:006D

FCBS运行环境链头地址 D2E7:0000

逻辑驱动器号 05

设备驱动程序链头地址 D181:0000

DPT链头地址 00C9:1346

当前时钟设备标题首址 0070:004C

每个缓冲区字节数 0200

磁盘路径表(DPAT)首址 D597:0000

DOS不能自动关闭的FCB数目 0000

最末驱动器号 1A

......

00C9:0040 00 00 E7 D2 00 00 05 1A-00 00 81 D1 04 80 CD 0D ..........

......

(从0024读起是为了读入MCB的地址)二、磁盘参数表DPT和磁盘路径表DPAT

1.磁盘参数表DPT

由EMB的表格知道DPT链头地址为00C9:1346,根据该地址可读出DPT的内容如下代码:

// 0 1 2 3 4 5 6 7 8 9 A B C D E F