新星市网站建设_网站建设公司_UX设计_seo优化
2026/1/17 14:53:51 网站建设 项目流程

ACPI!ACPIBuildProcessGenericComplete函数的作用是摘下当前处理的节点PCI0后ACPI!AcpiBuildRunMethodList剩9个节点

NTSTATUS
ACPIBuildProcessGenericComplete(
IN PACPI_BUILD_REQUEST BuildRequest
)
{

//
// Remove the entry from the current list. We might not need to be
// hodling the lock to do this, but it doesn't pay to not do it while
// we can
//
RemoveEntryList( &(BuildRequest->ListEntry) );


参考:
0: kd> kc
#
00 ACPI!ACPIBuildProcessRunMethodPhaseRecurse
01 ACPI!ACPIBuildProcessGenericList
02 ACPI!ACPIBuildDeviceDpc
03 nt!KiRetireDpcList
04 nt!KiDispatchInterrupt
WARNING: Frame IP not in any known module. Following frames may be wrong.
05 0x0
0: kd> dv
BuildRequest = 0x89906d70
childExtension = 0x89906d70
deviceExtension = 0x00000008
eled = struct EXTENSIONLIST_ENUMDATA
0: kd> dx -r1 ((ACPI!_ACPI_BUILD_REQUEST *)0x89906d70)
((ACPI!_ACPI_BUILD_REQUEST *)0x89906d70) : 0x89906d70 [Type: _ACPI_BUILD_REQUEST *]
[+0x000] ListEntry [Type: _LIST_ENTRY]
[+0x008] Signature : 0x5f534750 [Type: unsigned long]
[+0x00c] Flags : 0xc [Type: unsigned long]
[+0x00c] UFlags [Type: __unnamed]
[+0x010] WorkDone : 0x1 [Type: unsigned long]
[+0x014] CurrentWorkDone : 0x6 [Type: unsigned long]
[+0x018] NextWorkDone : 0x2 [Type: unsigned long]
[+0x01c] BuildContext : 0x899c0d58 [Type: void *]
[+0x020] Status : 0 [Type: long]
[+0x024] CurrentObject : 0x0 [Type: _NSObj *]
[+0x028] CallBack : 0x0 [Type: void (*)(void *,void *,long)]
[+0x02c] CallBackContext : 0x0 [Type: void *]
[+0x030] DeviceRequest [Type: __unnamed]
[+0x030] RunRequest [Type: __unnamed]
[+0x030] SynchronizeRequest [Type: __unnamed]
[+0x044] Integer : 0xf [Type: unsigned long]
[+0x044] String : 0xf : Unable to read memory at Address 0xf [Type: unsigned char *]
[+0x044] TargetListEntry : 0xf [Type: _LIST_ENTRY *]

0: kd> dt acpi!_DEVICE_EXTENSION 0x899c0d58
+0x000 Flags : 0x00400000`00000008

+0x12c AcpiObject : 0x899affac _NSObj
+0x130 DeviceObject : (null)
+0x134 TargetDeviceObject : (null)
+0x138 PhysicalDeviceObject : (null)
+0x13c ParentExtension : 0x89981a18 _DEVICE_EXTENSION
+0x140 ChildDeviceList : _LIST_ENTRY [ 0x899c0d38 - 0x8990efe8 ]
+0x148 SiblingDeviceList : _LIST_ENTRY [ 0x899ae150 - 0x89981b58 ]
+0x150 EjectDeviceHead : _LIST_ENTRY [ 0x899c0ea8 - 0x899c0ea8 ]
+0x158 EjectDeviceList : _LIST_ENTRY [ 0x899c0eb0 - 0x899c0eb0 ]
0: kd> db 0x899affac
899affac 4c ff 9a 89 ac 40 9b 89-f0 f0 9a 89 24 00 9b 89 L....@......$...
899affbc 50 43 49 30 30 f3 9a 89-4c ff 9a 89 00 00 06 00 PCI00...L.......
899affcc 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
899affdc 58 0d 9c 89 00 00 00 00-48 4f 52 47 34 00 00 00 X.......HORG4...
899affec 00 f0 9a 89 50 00 00 00-30 00 00 00 02 00 00 00 ....P...0.......
899afffc 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
899b000c 00 00 00 00 00 00 00 00-00 00 00 00 48 4e 53 4f ............HNSO
899b001c 44 00 00 00 00 f0 9a 89-64 a0 91 89 68 00 9b 89 D.......d...h...

参考:

0: kd> gu
Breakpoint 10 hit
eax=00000000 ebx=00000000 ecx=89906d80 edx=00000001 esi=89906d70 edi=80b019f4
eip=f73fb840 esp=f789ef64 ebp=f789ef84 iopl=0 nv up ei pl zr na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000246
ACPI!ACPIBuildProcessGenericComplete:
f73fb840 55 push ebp
0: kd> gu
Breakpoint 6 hit
eax=00000000 ebx=00000000 ecx=00020001 edx=00010000 esi=89906d70 edi=80b019f4
eip=f73fb914 esp=f789ef6c ebp=f789ef84 iopl=0 nv up ei pl zr na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000246
ACPI!ACPIBuildProcessGenericList+0x50:
f73fb914 85db test ebx,ebx


0: kd> x ACPI!AcpiBuildRunMethodList
f743b870 ACPI!AcpiBuildRunMethodList = struct _LIST_ENTRY [ 0x89906d20 - 0x89906aa0 ]
0: kd> dx -r1 (*((ACPI!_LIST_ENTRY *)0xf743b870))
(*((ACPI!_LIST_ENTRY *)0xf743b870)) [Type: _LIST_ENTRY]
[+0x000] Flink : 0x89906d20 [Type: _LIST_ENTRY *]
[+0x004] Blink : 0x89906aa0 [Type: _LIST_ENTRY *]
0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906d20)
((ACPI!_LIST_ENTRY *)0x89906d20) : 0x89906d20 [Type: _LIST_ENTRY *]
[+0x000] Flink : 0x89906cd0 [Type: _LIST_ENTRY *]
[+0x004] Blink : 0xf743b870 [Type: _LIST_ENTRY *]
0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906cd0)
((ACPI!_LIST_ENTRY *)0x89906cd0) : 0x89906cd0 [Type: _LIST_ENTRY *]
[+0x000] Flink : 0x89906c80 [Type: _LIST_ENTRY *]
[+0x004] Blink : 0x89906d20 [Type: _LIST_ENTRY *]
0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906c80)
((ACPI!_LIST_ENTRY *)0x89906c80) : 0x89906c80 [Type: _LIST_ENTRY *]
[+0x000] Flink : 0x89906c30 [Type: _LIST_ENTRY *]
[+0x004] Blink : 0x89906cd0 [Type: _LIST_ENTRY *]
0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906c30)
((ACPI!_LIST_ENTRY *)0x89906c30) : 0x89906c30 [Type: _LIST_ENTRY *]
[+0x000] Flink : 0x89906be0 [Type: _LIST_ENTRY *]
[+0x004] Blink : 0x89906c80 [Type: _LIST_ENTRY *]
0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906be0)
((ACPI!_LIST_ENTRY *)0x89906be0) : 0x89906be0 [Type: _LIST_ENTRY *]
[+0x000] Flink : 0x89906b90 [Type: _LIST_ENTRY *]
[+0x004] Blink : 0x89906c30 [Type: _LIST_ENTRY *]
0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906b90)
((ACPI!_LIST_ENTRY *)0x89906b90) : 0x89906b90 [Type: _LIST_ENTRY *]
[+0x000] Flink : 0x89906b40 [Type: _LIST_ENTRY *]
[+0x004] Blink : 0x89906be0 [Type: _LIST_ENTRY *]
0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906b40)
((ACPI!_LIST_ENTRY *)0x89906b40) : 0x89906b40 [Type: _LIST_ENTRY *]
[+0x000] Flink : 0x89906af0 [Type: _LIST_ENTRY *]
[+0x004] Blink : 0x89906b90 [Type: _LIST_ENTRY *]
0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906af0)
((ACPI!_LIST_ENTRY *)0x89906af0) : 0x89906af0 [Type: _LIST_ENTRY *]
[+0x000] Flink : 0x89906aa0 [Type: _LIST_ENTRY *]
[+0x004] Blink : 0x89906b40 [Type: _LIST_ENTRY *]
0: kd> dx -r1 ((ACPI!_LIST_ENTRY *)0x89906aa0)
((ACPI!_LIST_ENTRY *)0x89906aa0) : 0x89906aa0 [Type: _LIST_ENTRY *]
[+0x000] Flink : 0xf743b870 [Type: _LIST_ENTRY *]
[+0x004] Blink : 0x89906af0 [Type: _LIST_ENTRY *]

第二部分:

//
// If we have completed the request, then we should look at the
// at the next request, otherwise, we need to look at the current
// request again
if (workDone == WORK_DONE_COMPLETE|| workDone == WORK_DONE_FAILURE) {

currentEntry = tempEntry;

}

把下一个节点赋值给currentEntry,继续处理下一个节点。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询