从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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1167894.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

百考通AI开题报告功能:智能构建学术起点,让高质量开题触手可及

开题报告是科研工作的“导航图”,它不仅框定研究边界、明确问题意识,还体现研究者的逻辑思维与学术素养。然而,现实中许多学生在撰写时常常陷入“有想法却写不出”“读了很多却理不清”“方法模糊结构散”的困境,导致开题反复修改…

IP分片与组装

IP 分片是 TCP/IP 协议栈中网络层(IP 层)的核心机制,目的是解决 “IP 报文长度超过数据链路层 MTU 限制” 的传输问题 —— 确保大型 IP 数据报能通过不同 MTU 的网络链路(如以太网、PPP 链路)成功送达目标主机。以下从…

jQuery 版本文件及相关信息汇总

一、核心结论​ 截至2025年1月,jQuery 的最新稳定版本为 3.7.1(2023年7月发布),4.0 版本仍处于测试阶段(2025年8月发布 Release Candidate 1,未正式推出)。当前主流使用的版本为 3.x 系列&…

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

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

ARP欺骗的原理与防御措施

ARP 欺骗(也叫 ARP 毒化)的核心是利用ARP 协议无身份验证的漏洞(主机收到 ARP 应答时,会直接更新自身 ARP 缓存表,不管是否发送过对应请求),让攻击者(图中 “主机 M”)伪…

python基于django框架的大学生平时成绩管理系统 四个角色45s2bez3

目录系统概述角色功能设计技术实现应用价值关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!系统概述 Python基于Django框架的大学生平时成绩管理系统是一个多角色协作的在线平台&am…

springboot基于微信小程序的粤语文化传播平台的设计与开发

背景分析随着全球化与数字化发展,地域文化面临同质化冲击,粤语作为岭南文化的重要载体,其传承与传播需求日益凸显。微信小程序凭借低门槛、高普及率(覆盖超10亿用户)及社交属性,成为文化传播的高效工具。Sp…

百考通AI开题报告功能:让开题写作从“压力源”变为“加速器”

对无数学生而言,开题报告曾是毕业路上的“拦路虎”——选题反复修改、结构混乱不清、方法描述空洞、文献堆砌无逻辑……不仅耗费大量时间精力,还常常因不符合导师或学院要求而被打回重写。如今,百考通AI平台推出的“开题报告”写作功能&#…

JavaScript 中实现 a.js调用 b.js函数教程

以下是 JavaScript 中实现 a.js调用 b.js函数的 5 种主流方法,涵盖不同场景和最佳实践:一、全局函数暴露(基础方案)1. 实现步骤b.js(定义全局函数):// 定义全局可访问的函数 window.sharedFunct…

springboot基于微信小程序的云浮市特色农产品交易的设计与实现

背景分析随着移动互联网和电子商务的快速发展,微信小程序凭借其轻量化、即用即走的特点,成为农产品线上交易的重要载体。云浮市作为广东省农业重要产区,拥有丰富的特色农产品资源(如无核黄皮、南药、肉桂等)&#xff0…

JavaScript 中定义全局变量的教程

以下是 JavaScript 中定义全局变量的 5 种核心方法及最佳实践,结合不同场景和注意事项:一、基础定义方式1. 隐式全局声明(不推荐)// 直接赋值(未使用声明关键字) myGlobal "value";特点&#xf…

python基于django框架的新能源汽车之家系统设计与实现

目录新能源汽车之家系统设计与实现摘要关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!新能源汽车之家系统设计与实现摘要 该系统基于Django框架开发,旨在为用户提供新能…

springboot基于小程序的智能雨伞借取管理系统设计实现

背景分析近年来,共享经济模式快速发展,共享雨伞作为细分领域,解决了突发降雨场景下的用户需求。传统雨伞借取方式存在人工管理效率低、租赁点分散、用户操作繁琐等问题。SpringBoot框架结合微信小程序的技术方案,能够构建高效、智…

【实践】利用 Prettier 格式化打包后的代码?修 BUG 的隐藏神器!

在日常开发中,我们习惯用 Prettier 统一源码风格。但你是否想过——它还能用来“抢救”打包后的压缩代码?当线上出问题、控制台报错指向一行上万字符的 app.xxx.js 时,Prettier 可能就是你快速定位 Bug 的“救命稻草”! 本文将手…

springboot基于微信小程序的考研资源共享平台的设计与实现

背景分析随着考研竞争日益激烈,考生对高质量学习资源的需求急剧增长。传统资源获取方式存在信息分散、更新滞后、付费门槛高等痛点。微信小程序凭借10亿级用户基础与即用即走的特性,成为资源聚合的理想载体。SpringBoot框架的快速开发能力与微服务架构优…

python基于django水上乐园售票管理系统

目录基于Django的水上乐园售票管理系统摘要关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!基于Django的水上乐园售票管理系统摘要 该系统采用Django框架开发,旨在实现水…

本科生开题报告PPT规范

摘要: 本贴描述本科生开题报告 PPT 的若干规范. 1. 基本风格 采用浅色背景模板图片为主, 文字为辅字号不能小于 20 号每页不能有大段的话, 只能分成若干点,每点不超过 2 行具体 (可以用例子), 不能泛泛而谈 (计算机发展, AI 发展之类废话) 2. 对题目的详细解释 开题…

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

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

springboot基于微信小程序的丽江市旅游分享平台

背景分析丽江市作为中国著名的旅游目的地,拥有丰富的自然景观和文化遗产,吸引了大量国内外游客。传统的旅游信息获取方式存在信息分散、更新不及时等问题,游客难以全面了解实时旅游动态和个性化推荐内容。微信小程序因其无需下载安装、使用便…

python基于django付费自习室系统的设计与实现

目录基于Django的付费自习室系统的设计与实现关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!基于Django的付费自习室系统的设计与实现 随着教育需求的增长和学习效率要求的提升&am…