news 2026/5/30 22:13:15

从ACPI!AMLILoadDDB中的ACPI!SyncLoadDDB到ACPI!ACPICallBackLoad

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从ACPI!AMLILoadDDB中的ACPI!SyncLoadDDB到ACPI!ACPICallBackLoad

从ACPI!AMLILoadDDB中的ACPI!SyncLoadDDB到ACPI!ACPICallBackLoad

rc = LoadDDB(pctxt,pDSDT, gpnsNameSpaceRoot, &powner);
if (rc == STATUS_SUCCESS)
{
rc = SyncLoadDDB(pctxt);
}

#ifdef DEBUG
{
KIRQL oldIrql;

gdwfAMLI &= ~AMLIF_LOADING_DDB;
KeAcquireSpinLock( &gdwGHeapSpinLock, &oldIrql );
gdwGHeapSnapshot = gdwGlobalHeapSize;
KeReleaseSpinLock( &gdwGHeapSpinLock, oldIrql );
}
#endif
}

if (phDDB != NULL)
{
*phDDB = (HANDLE)powner;
}

if ((powner != NULL) && (atLoad.pfnCallBack != NULL))
{
if (atLoad.dwfOpcode & OF_CALLBACK_EX) {

((PFNOPEX)atLoad.pfnCallBack)(
EVTYPE_OPCODE_EX,
OPEXF_NOTIFY_POST,
atLoad.dwOpcode,
NULL,
atLoad.dwCBData
);

0: kd> g
Breakpoint 1 hit
ACPI!ACPIBuildDeviceExtension:
f73fc868 55 push ebp
0: kd> bp ACPI!ACPIWorker+0xbd
0: kd> kc
#
00 ACPI!ACPIBuildDeviceExtension
01 ACPI!OSNotifyCreateDevice
02 ACPI!OSNotifyCreate
03 ACPI!Device
04 ACPI!ParseTerm
05 ACPI!RunContext
06 ACPI!InsertReadyQueue
07 ACPI!RestartContext
08 ACPI!SyncLoadDDB
09 ACPI!AMLILoadDDB

0a ACPI!ACPIInitializeDDB
0b ACPI!ACPIInitializeDDBs
0c ACPI!ACPIInitialize
0d ACPI!ACPIInitStartACPI
0e ACPI!ACPIRootIrpStartDevice
0f ACPI!ACPIDispatchIrp
10 nt!IofCallDriver
11 nt!IopSynchronousCall
12 nt!IopStartDevice
13 nt!PipProcessStartPhase1
14 nt!PipProcessDevNodeTree
15 nt!PipDeviceActionWorker
16 nt!PipRequestDeviceAction
17 nt!IopInitializeBootDrivers
18 nt!IoInitSystem
19 nt!Phase1Initialization
1a nt!PspSystemThreadStartup
1b nt!KiThreadStartup
0: kd> kv
# ChildEBP RetAddr Args to Child
00 f789a0b4 f740b6fe 899b21bc 899c0d58 f789a0d4 ACPI!ACPIBuildDeviceExtension (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\nt\buildsrc.c @ 782]
01 f789a0d8 f740c800 899b21bc 00000000 00000000 ACPI!OSNotifyCreateDevice+0x90 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\nt\osnotify.c @ 191]
02 f789a0f8 f7421110 00000006 009b21bc 00000000 ACPI!OSNotifyCreate+0x88 (FPO: [Non-Fpo]) (CONV: cdecl) [d:\srv03rtm\base\busdrv\acpi\driver\nt\osnotify.c @ 77]
03 f789a114 f7427bf3 8997c000 00000000 8997de20 ACPI!Device+0x77 (FPO: [Non-Fpo]) (CONV: cdecl) [d:\srv03rtm\base\busdrv\acpi\driver\amlinew\namedobj.c @ 359]
04 f789a130 f741d832 8997c000 8997de20 00000000 ACPI!ParseTerm+0x1bf (FPO: [Non-Fpo]) (CONV: cdecl) [d:\srv03rtm\base\busdrv\acpi\driver\amlinew\parser.c @ 555]
05 f789a158 f7420671 00000000 4556414c 8997c000 ACPI!RunContext+0x122 (FPO: [Non-Fpo]) (CONV: cdecl) [d:\srv03rtm\base\busdrv\acpi\driver\amlinew\ctxt.c @ 588]
06 f789a180 f7420887 8997c000 00000000 f743a948 ACPI!InsertReadyQueue+0x155 (FPO: [Non-Fpo]) (CONV: cdecl) [d:\srv03rtm\base\busdrv\acpi\driver\amlinew\sched.c @ 275]
07 f789a1a0 f741f723 8997c000 00000000 80000000 ACPI!RestartContext+0xb3 (FPO: [Non-Fpo]) (CONV: cdecl) [d:\srv03rtm\base\busdrv\acpi\driver\amlinew\sched.c @ 346]
08 f789a1d8 f7414fc7 8997c000 f74c74be 00000078 ACPI!SyncLoadDDB+0xaf (FPO: [Non-Fpo]) (CONV: cdecl) [d:\srv03rtm\base\busdrv\acpi\driver\amlinew\sync.c @ 961]
09 f789a1fc f745394d f74c74be f789a218 0000000a ACPI!AMLILoadDDB+0x162 (FPO: [Non-Fpo]) (CONV: cdecl) [d:\srv03rtm\base\busdrv\acpi\driver\amlinew\amliapi.c @ 442]
0a f789a21c f7453cb3 0000000a 899c11e0 80ae2bca ACPI!ACPIInitializeDDB+0x73 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\shared\acpiinit.c @ 490]
0b f789a230 f74543db 804ee150 f743b620 804ee090 ACPI!ACPIInitializeDDBs+0x8d (FPO: [0,0,0]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\shared\acpiinit.c @ 593]
0c f789a248 f740899d 89981b98 89981a18 00000000 ACPI!ACPIInitialize+0x213 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\shared\acpiinit.c @ 251]
0d f789a27c f744f51e 89981b98 00000000 f744f3ea ACPI!ACPIInitStartACPI+0x6f (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\nt\init.c @ 1211]
0e f789a2a8 f740410e 89981b98 899bf500 89981b98 ACPI!ACPIRootIrpStartDevice+0x134 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\nt\root.c @ 1340]
0f f789a2dc 80a2675c 89981b98 899bf5b0 899bf668 ACPI!ACPIDispatchIrp+0x19e (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\nt\dispatch.c @ 690]
10 f789a2f8 80c95e00 f789a36c 899c1008 899c1de0 nt!IofCallDriver+0x62 (FPO: [Non-Fpo]) (CONV: fastcall) [d:\srv03rtm\base\ntos\io\iomgr\iosubs.c @ 2237]
11 f789a328 80c95f56 00000000 f789a348 00000000 nt!IopSynchronousCall+0x1aa (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpirp.c @ 258]
12 f789a36c 80c8f415 899c1de0 00000001 00000000 nt!IopStartDevice+0x78 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpirp.c @ 334]
13 f789a388 80c94d55 899c1de0 00000000 00000000 nt!PipProcessStartPhase1+0x9d (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpenum.c @ 5014]
14 f789a5d4 80a2dde9 899c5ac8 00000000 899c4100 nt!PipProcessDevNodeTree+0x1c7 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpenum.c @ 4648]
15 f789a618 80a2e161 00000000 00000000 800836b0 nt!PipDeviceActionWorker+0xcd (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpenum.c @ 710]
16 f789a630 80e69358 00000000 00000005 00000000 nt!PipRequestDeviceAction+0x139 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpenum.c @ 598]
17 f789a694 80e655c7 80077000 f789a7dc 00034000 nt!IopInitializeBootDrivers+0x392 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpinit.c @ 1440]
18 f789a838 80e632fd 80077000 00000000 899a1020 nt!IoInitSystem+0x70b (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\iomgr\ioinit.c @ 665]
19 f789adac 80d391f0 80077000 00000000 00000000 nt!Phase1Initialization+0x9b3 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\init\init.c @ 2221]
1a f789addc 80b00d52 80e6294a 80077000 00000000 nt!PspSystemThreadStartup+0x2e (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\ps\create.c @ 2213]
1b 00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16 [d:\srv03rtm\base\ntos\ke\i386\threadbg.asm @ 81]
windbg> .open -a fffffffff7414fc7
0: kd> bp f7414fc7
0: kd> g
Breakpoint 1 hit
ACPI!ACPIBuildDeviceExtension:
f73fc868 55 push ebp
0: kd> bd 1
0: kd> g
Breakpoint 13 hit
ACPI!ParseCall:
f7427709 55 push ebp
0: kd> bd 13
0: kd> g
Breakpoint 11 hit
ACPI!RunContext+0x142:
f741d852 e83bceffff call ACPI!AcquireMutex (f741a692)
0: kd> bd 11
0: kd> g
Breakpoint 18 hit
ACPI!AMLILoadDDB+0x162:
f7414fc7 59 pop ecx
0: kd> be 11
0: kd> be 13
0: kd> kc
#
00 ACPI!AMLILoadDDB
01 ACPI!ACPIInitializeDDB
02 ACPI!ACPIInitializeDDBs
03 ACPI!ACPIInitialize
04 ACPI!ACPIInitStartACPI
05 ACPI!ACPIRootIrpStartDevice
06 ACPI!ACPIDispatchIrp
07 nt!IofCallDriver
08 nt!IopSynchronousCall
09 nt!IopStartDevice
0a nt!PipProcessStartPhase1
0b nt!PipProcessDevNodeTree
0c nt!PipDeviceActionWorker
0d nt!PipRequestDeviceAction
0e nt!IopInitializeBootDrivers
0f nt!IoInitSystem
10 nt!Phase1Initialization
11 nt!PspSystemThreadStartup
12 nt!KiThreadStartup
0: kd> kv
# ChildEBP RetAddr Args to Child
00 f789a1fc f745394d f74c74be f789a218 0000000a ACPI!AMLILoadDDB+0x162 (FPO: [Non-Fpo]) (CONV: cdecl) [d:\srv03rtm\base\busdrv\acpi\driver\amlinew\amliapi.c @ 442]
01 f789a21c f7453cb3 0000000a 899c11e0 80ae2bca ACPI!ACPIInitializeDDB+0x73 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\shared\acpiinit.c @ 490]
02 f789a230 f74543db 804ee150 f743b620 804ee090 ACPI!ACPIInitializeDDBs+0x8d (FPO: [0,0,0]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\shared\acpiinit.c @ 593]
03 f789a248 f740899d 89981b98 89981a18 00000000 ACPI!ACPIInitialize+0x213 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\shared\acpiinit.c @ 251]
04 f789a27c f744f51e 89981b98 00000000 f744f3ea ACPI!ACPIInitStartACPI+0x6f (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\nt\init.c @ 1211]
05 f789a2a8 f740410e 89981b98 899bf500 89981b98 ACPI!ACPIRootIrpStartDevice+0x134 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\nt\root.c @ 1340]
06 f789a2dc 80a2675c 89981b98 899bf5b0 899bf668 ACPI!ACPIDispatchIrp+0x19e (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\nt\dispatch.c @ 690]
07 f789a2f8 80c95e00 f789a36c 899c1008 899c1de0 nt!IofCallDriver+0x62 (FPO: [Non-Fpo]) (CONV: fastcall) [d:\srv03rtm\base\ntos\io\iomgr\iosubs.c @ 2237]
08 f789a328 80c95f56 00000000 f789a348 00000000 nt!IopSynchronousCall+0x1aa (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpirp.c @ 258]
09 f789a36c 80c8f415 899c1de0 00000001 00000000 nt!IopStartDevice+0x78 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpirp.c @ 334]
0a f789a388 80c94d55 899c1de0 00000000 00000000 nt!PipProcessStartPhase1+0x9d (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpenum.c @ 5014]
0b f789a5d4 80a2dde9 899c5ac8 00000000 899c4100 nt!PipProcessDevNodeTree+0x1c7 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpenum.c @ 4648]
0c f789a618 80a2e161 00000000 00000000 800836b0 nt!PipDeviceActionWorker+0xcd (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpenum.c @ 710]
0d f789a630 80e69358 00000000 00000005 00000000 nt!PipRequestDeviceAction+0x139 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpenum.c @ 598]
0e f789a694 80e655c7 80077000 f789a7dc 00034000 nt!IopInitializeBootDrivers+0x392 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpinit.c @ 1440]
0f f789a838 80e632fd 80077000 00000000 899a1020 nt!IoInitSystem+0x70b (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\iomgr\ioinit.c @ 665]
10 f789adac 80d391f0 80077000 00000000 00000000 nt!Phase1Initialization+0x9b3 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\init\init.c @ 2221]
11 f789addc 80b00d52 80e6294a 80077000 00000000 nt!PspSystemThreadStartup+0x2e (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\ps\create.c @ 2213]
12 00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16 [d:\srv03rtm\base\ntos\ke\i386\threadbg.asm @ 81]

#define OF_CALLBACK_EX 0x80000000

if ((powner != NULL) && (atLoad.pfnCallBack != NULL))
{
if (atLoad.dwfOpcode & OF_CALLBACK_EX) {

((PFNOPEX)atLoad.pfnCallBack)(
EVTYPE_OPCODE_EX,
OPEXF_NOTIFY_POST,
atLoad.dwOpcode,
NULL,
atLoad.dwCBData
);

0: kd> t
ACPI!ACPICallBackLoad:
f73fe80a 55 push ebp
0: kd> kc
#
00 ACPI!ACPICallBackLoad
01 ACPI!AMLILoadDDB

02 ACPI!ACPIInitializeDDB
03 ACPI!ACPIInitializeDDBs
04 ACPI!ACPIInitialize
05 ACPI!ACPIInitStartACPI
06 ACPI!ACPIRootIrpStartDevice
07 ACPI!ACPIDispatchIrp
08 nt!IofCallDriver
09 nt!IopSynchronousCall
0a nt!IopStartDevice
0b nt!PipProcessStartPhase1
0c nt!PipProcessDevNodeTree
0d nt!PipDeviceActionWorker
0e nt!PipRequestDeviceAction
0f nt!IopInitializeBootDrivers
10 nt!IoInitSystem
11 nt!Phase1Initialization
12 nt!PspSystemThreadStartup
13 nt!KiThreadStartup

0: kd> kv
# ChildEBP RetAddr Args to Child
00 f789a1c8 f7415030 0000000c 00000002 0000205b ACPI!ACPICallBackLoad (FPO: [Non-Fpo]) (CONV: cdecl) [d:\srv03rtm\base\busdrv\acpi\driver\nt\callback.c @ 67]
01 f789a1fc f745394d f74c74be f789a218 0000000a ACPI!AMLILoadDDB+0x1cb (FPO: [Non-Fpo]) (CONV: cdecl) [d:\srv03rtm\base\busdrv\acpi\driver\amlinew\amliapi.c @ 472]
02 f789a21c f7453cb3 0000000a 899c11e0 80ae2bca ACPI!ACPIInitializeDDB+0x73 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\shared\acpiinit.c @ 490]
03 f789a230 f74543db 804ee150 f743b620 804ee090 ACPI!ACPIInitializeDDBs+0x8d (FPO: [0,0,0]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\shared\acpiinit.c @ 593]
04 f789a248 f740899d 89981b98 89981a18 00000000 ACPI!ACPIInitialize+0x213 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\shared\acpiinit.c @ 251]
05 f789a27c f744f51e 89981b98 00000000 f744f3ea ACPI!ACPIInitStartACPI+0x6f (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\nt\init.c @ 1211]
06 f789a2a8 f740410e 89981b98 899bf500 89981b98 ACPI!ACPIRootIrpStartDevice+0x134 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\nt\root.c @ 1340]
07 f789a2dc 80a2675c 89981b98 899bf5b0 899bf668 ACPI!ACPIDispatchIrp+0x19e (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\busdrv\acpi\driver\nt\dispatch.c @ 690]
08 f789a2f8 80c95e00 f789a36c 899c1008 899c1de0 nt!IofCallDriver+0x62 (FPO: [Non-Fpo]) (CONV: fastcall) [d:\srv03rtm\base\ntos\io\iomgr\iosubs.c @ 2237]
09 f789a328 80c95f56 00000000 f789a348 00000000 nt!IopSynchronousCall+0x1aa (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpirp.c @ 258]
0a f789a36c 80c8f415 899c1de0 00000001 00000000 nt!IopStartDevice+0x78 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpirp.c @ 334]
0b f789a388 80c94d55 899c1de0 00000000 00000000 nt!PipProcessStartPhase1+0x9d (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpenum.c @ 5014]
0c f789a5d4 80a2dde9 899c5ac8 00000000 899c4100 nt!PipProcessDevNodeTree+0x1c7 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpenum.c @ 4648]
0d f789a618 80a2e161 00000000 00000000 800836b0 nt!PipDeviceActionWorker+0xcd (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpenum.c @ 710]
0e f789a630 80e69358 00000000 00000005 00000000 nt!PipRequestDeviceAction+0x139 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpenum.c @ 598]
0f f789a694 80e655c7 80077000 f789a7dc 00034000 nt!IopInitializeBootDrivers+0x392 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\pnpmgr\pnpinit.c @ 1440]
10 f789a838 80e632fd 80077000 00000000 899a1020 nt!IoInitSystem+0x70b (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\io\iomgr\ioinit.c @ 665]
11 f789adac 80d391f0 80077000 00000000 00000000 nt!Phase1Initialization+0x9b3 (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\init\init.c @ 2221]
12 f789addc 80b00d52 80e6294a 80077000 00000000 nt!PspSystemThreadStartup+0x2e (FPO: [Non-Fpo]) (CONV: stdcall) [d:\srv03rtm\base\ntos\ps\create.c @ 2213]
13 00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16 [d:\srv03rtm\base\ntos\ke\i386\threadbg.asm @ 81]
windbg> .open -a fffffffff7415030

0: kd> p
ACPI!ACPICallBackLoad+0x2f:
f73fe839 e8e8220100 call ACPI!ACPITableLoad (f7410b26)
0: kd> t
Breakpoint 20 hit
ACPI!ACPITableLoad:
f7410b26 55 push ebp
0: kd> kc
#
00 ACPI!ACPITableLoad
01 ACPI!ACPICallBackLoad
02 ACPI!AMLILoadDDB
03 ACPI!ACPIInitializeDDB
04 ACPI!ACPIInitializeDDBs
05 ACPI!ACPIInitialize
06 ACPI!ACPIInitStartACPI
07 ACPI!ACPIRootIrpStartDevice
08 ACPI!ACPIDispatchIrp
09 nt!IofCallDriver
0a nt!IopSynchronousCall
0b nt!IopStartDevice
0c nt!PipProcessStartPhase1
0d nt!PipProcessDevNodeTree
0e nt!PipDeviceActionWorker
0f nt!PipRequestDeviceAction
10 nt!IopInitializeBootDrivers
11 nt!IoInitSystem
12 nt!Phase1Initialization
13 nt!PspSystemThreadStartup
14 nt!KiThreadStartup

0: kd> dv
fixedButtonExtension = 0x00000000
nsObject = 0x899af0f0
oldIrql = 0x00 ''
runRootIni = 0x00 ''
0: kd> dx -r1 ((ACPI!_NSObj *)0x899af0f0)
((ACPI!_NSObj *)0x899af0f0) : 0x899af0f0 [Type: _NSObj *]
[+0x000] list [Type: _List]
[+0x008] pnsParent : 0x899af024 [Type: _NSObj *]
[+0x00c] pnsFirstChild : 0x899af474 [Type: _NSObj *]
[+0x010] dwNameSeg : 0x5f42535f [Type: unsigned long]
[+0x014] hOwner : 0x0 [Type: void *]
[+0x018] pnsOwnedNext : 0x0 [Type: _NSObj *]
[+0x01c] ObjData [Type: _ObjData]
[+0x030] Context : 0x0[Type: void *]
[+0x034] dwRefCount : 0x0 [Type: unsigned long]

0: kd> db 0x899af0f0
899af0f0 ac f0 9a 89 34 f1 9a 89-24 f0 9a 89 74 f4 9a 89 ....4...$...t...
899af100 5f 53 42 5f 00 00 00 00-00 00 00 00 00 00 00 00 _SB_............
899af110 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
899af120 00 00 00 00 00 00 00 00-48 4e 53 4f 44 00 00 00 ........HNSOD...
899af130 00 f0 9a 89 f0 f0 9a 89-78 f1 9a 89 24 f0 9a 89 ........x...$...
899af140 00 00 00 00 5f 53 49 5f-00 00 00 00 00 00 00 00 ...._SI_........
899af150 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
899af160 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO

0: kd> x acpi!RootDeviceExtension
f743b710 ACPI!RootDeviceExtension = 0x89981a18
0: kd> dx -r1 ((ACPI!_DEVICE_EXTENSION *)0x89981a18)
((ACPI!_DEVICE_EXTENSION *)0x89981a18) : 0x89981a18 [Type: _DEVICE_EXTENSION *]
[+0x000] Flags : 0x1e00000200010 [Type: unsigned __int64]
[+0x000] UFlags [Type: __unnamed]
[+0x008] Signature : 0x5f534750 [Type: unsigned long]
[+0x00c] DebugFlags : 0x0 [Type: unsigned long]
[+0x010] DispatchTable : 0xf743826c [Type: IRP_DISPATCH_TABLE *]
[+0x014] WorkContext [Type: WORK_QUEUE_CONTEXT]
[+0x014] Fdo [Type: _FDO_DEVICE_EXTENSION]
[+0x014] Filter [Type: _FILTER_DEVICE_EXTENSION]
[+0x014] Pdo [Type: _PDO_DEVICE_EXTENSION]
[+0x058] WorkQueue [Type: EXTENSION_WORKER]
[+0x058] Button [Type: BUTTON_EXTENSION]
[+0x058] Thermal [Type: THERMAL_EXTENSION]
[+0x058] LinkNode [Type: LINK_NODE_EXTENSION]
[+0x058] Dock [Type: DOCK_EXTENSION]
[+0x058] Processor [Type: _PROCESSOR_DEVICE_EXTENSION]
[+0x088] DeviceState : Stopped (0) [Type: _ACPI_DEVICE_STATE]
[+0x08c] PreviousState : Stopped (0) [Type: _ACPI_DEVICE_STATE]
[+0x090] PowerInfo [Type: _ACPI_POWER_INFO]
[+0x10c] DeviceID : 0x899bfed0 : 0x41 [Type: unsigned char *]
[+0x10c] Address : 0x899bfed0 [Type: unsigned long]
[+0x110] InstanceID : 0x899bfeb8 : 0x30 [Type: unsigned char *]
[+0x114] ResourceList : 0x899874d0 [Type: _CM_RESOURCE_LIST *]
[+0x118] PnpResourceList : 0x0 [Type: _ObjData *]
[+0x11c] OutstandingIrpCount : 2 [Type: long]
[+0x120] ReferenceCount : 11 [Type: long]
[+0x124] HibernatePathCount : 0 [Type: long]
[+0x128] RemoveEvent : 0x0 [Type: _KEVENT *]
[+0x12c] AcpiObject : 0x0[Type: _NSObj *]
[+0x130] DeviceObject : 0x89981b98 : Device for "\Driver\ACPI" [Type: _DEVICE_OBJECT *]
[+0x134] TargetDeviceObject : 0x899c1de0 : Device for "\Driver\ACPI_HAL" [Type: _DEVICE_OBJECT *]
[+0x138] PhysicalDeviceObject : 0x899c1de0 : Device for "\Driver\ACPI_HAL" [Type: _DEVICE_OBJECT *]
[+0x13c] ParentExtension : 0x0 [Type: _DEVICE_EXTENSION *]
[+0x140] ChildDeviceList [Type: _LIST_ENTRY]
[+0x148] SiblingDeviceList [Type: _LIST_ENTRY]
[+0x150] EjectDeviceHead [Type: _LIST_ENTRY]
[+0x158] EjectDeviceList [Type: _LIST_ENTRY]


//
// Make sure that the root device extension's object points to the correct
// thing. We only want to run through this code path once...
//
if (RootDeviceExtension->AcpiObject == NULL) {

runRootIni = TRUE;
InterlockedIncrement( &(RootDeviceExtension->ReferenceCount) );
RootDeviceExtension->AcpiObject = nsObject;
nsObject->Context = RootDeviceExtension;


RootDeviceExtension和_SB联系起来了!

0: kd> dx -r1 ((ACPI!_DEVICE_EXTENSION *)0x89981a18)
((ACPI!_DEVICE_EXTENSION *)0x89981a18) : 0x89981a18 [Type: _DEVICE_EXTENSION *]
[+0x000] Flags : 0x1e00000200010 [Type: unsigned __int64]
[+0x000] UFlags [Type: __unnamed]
[+0x008] Signature : 0x5f534750 [Type: unsigned long]
[+0x00c] DebugFlags : 0x0 [Type: unsigned long]
[+0x010] DispatchTable : 0xf743826c [Type: IRP_DISPATCH_TABLE *]
[+0x014] WorkContext [Type: WORK_QUEUE_CONTEXT]
[+0x014] Fdo [Type: _FDO_DEVICE_EXTENSION]
[+0x014] Filter [Type: _FILTER_DEVICE_EXTENSION]
[+0x014] Pdo [Type: _PDO_DEVICE_EXTENSION]
[+0x058] WorkQueue [Type: EXTENSION_WORKER]
[+0x058] Button [Type: BUTTON_EXTENSION]
[+0x058] Thermal [Type: THERMAL_EXTENSION]
[+0x058] LinkNode [Type: LINK_NODE_EXTENSION]
[+0x058] Dock [Type: DOCK_EXTENSION]
[+0x058] Processor [Type: _PROCESSOR_DEVICE_EXTENSION]
[+0x088] DeviceState : Stopped (0) [Type: _ACPI_DEVICE_STATE]
[+0x08c] PreviousState : Stopped (0) [Type: _ACPI_DEVICE_STATE]
[+0x090] PowerInfo [Type: _ACPI_POWER_INFO]
[+0x10c] DeviceID : 0x899bfed0 : 0x41 [Type: unsigned char *]
[+0x10c] Address : 0x899bfed0 [Type: unsigned long]
[+0x110] InstanceID : 0x899bfeb8 : 0x30 [Type: unsigned char *]
[+0x114] ResourceList : 0x899874d0 [Type: _CM_RESOURCE_LIST *]
[+0x118] PnpResourceList : 0x0 [Type: _ObjData *]
[+0x11c] OutstandingIrpCount : 2 [Type: long]
[+0x120] ReferenceCount : 12 [Type: long]
[+0x124] HibernatePathCount : 0 [Type: long]
[+0x128] RemoveEvent : 0x0 [Type: _KEVENT *]
[+0x12c] AcpiObject : 0x899af0f0[Type: _NSObj *]
[+0x130] DeviceObject : 0x89981b98 : Device for "\Driver\ACPI" [Type: _DEVICE_OBJECT *]
[+0x134] TargetDeviceObject : 0x899c1de0 : Device for "\Driver\ACPI_HAL" [Type: _DEVICE_OBJECT *]
[+0x138] PhysicalDeviceObject : 0x899c1de0 : Device for "\Driver\ACPI_HAL" [Type: _DEVICE_OBJECT *]
[+0x13c] ParentExtension : 0x0 [Type: _DEVICE_EXTENSION *]
[+0x140] ChildDeviceList [Type: _LIST_ENTRY]
[+0x148] SiblingDeviceList [Type: _LIST_ENTRY]
[+0x150] EjectDeviceHead [Type: _LIST_ENTRY]
[+0x158] EjectDeviceList [Type: _LIST_ENTRY]


0: kd> dt nsobj 0x899af0f0
ACPI!NSOBJ
+0x000 list : _List
+0x008 pnsParent : 0x899af024 _NSObj
+0x00c pnsFirstChild : 0x899af474 _NSObj
+0x010 dwNameSeg : 0x5f42535f
+0x014 hOwner : (null)
+0x018 pnsOwnedNext : (null)
+0x01c ObjData : _ObjData
+0x030 Context : 0x89981a18Void
+0x034 dwRefCount : 0

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/30 13:23:15

YOLOv11_OBB(目标旋转框)模型从标签制作到训练推理

前言 由于目前全网大都是水平框检测的教程,本博客使用YOLOv11_OBB检测,从打标签,到训练自己的数据集,显示目标的旋转框检测教程。 目标检测框和目标旋转框的区别: 旋转边界框(OBB)包含一个额外的…

作者头像 李华
网站建设 2026/5/29 22:09:15

python基于django人口户籍管理系统设计与实现

目录摘要关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 随着城市化进程的加快和人口流动性的增强,传统的人工户籍管理方式已难以满足现代社会的需求。为提高户籍管…

作者头像 李华
网站建设 2026/5/29 1:41:33

python基于django框架的健康档案网站的设计与实现

目录健康档案网站的设计与实现摘要关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!健康档案网站的设计与实现摘要 基于Django框架的健康档案网站旨在为用户提供便捷的个人健康数据管…

作者头像 李华
网站建设 2026/5/29 15:28:46

《创业之路》-863-基业长青 =为企业基业长青的终极实战操作系统,首次将 「四阶价值流 × 商业模式画布 × 产品生命周期 × 创新 × 技术曲线 × 第二增长曲线 × 上中下游生态」 七大工具深度

企业基业长青的终极实战操作系统,我们首次将 「四阶价值流 商业模式画布 产品生命周期 创新 技术曲线 第二增长曲线 上中下游生态」 七大工具深度耦合,形成可量化、可执行、可预警的企业生存指南。框架核心逻辑:基业长青 用生态控制力…

作者头像 李华
网站建设 2026/5/28 15:51:35

手把手AI论文生成工具指南:6款全覆盖,30分钟搞定文理医工

H2 一、为什么你需要一份AI论文工具集测评与指南? 对于大学生、研究生以及科研人员来说,论文写作往往意味着时间紧、任务重、跨领域难度大。尤其在面对文、理、医、工等不同学科时,从选题构思、文献调研,到问卷设计、数据分析&am…

作者头像 李华