2026/6/1 7:19:25
网站建设
项目流程
哪有网站给光头强做面,长春市城建网站,wordpress仿站教程2018,推广赚钱 每单5元节点BAT2方法VMPS里面访问\_SB.PCI0.OEMR放到局部变量Local0中返回期间会调用acpi!GetPciAddress
每次访问\_SB.PCI0.OEMR就好调用acpi!GetPciAddress函数就会新建两个_CTXT。 可以用个全局变量把结果 state-Bus, state-state-Bus,state-Slot比如全局变量acpi!pci0_state_Bus和全局变量acpi!pci0_state_Slot。能提高一些速度。if (!interface) {if (!(state-Flags PCISUPP_GOT_SLOT_INFO)) {state-Flags | PCISUPP_GOT_SLOT_INFO;status GetPciAddress(state-PciObj,PciConfigSpaceHandlerWorker,(PVOID)state,state-Bus,state-Slot);Method (VMPS, 1, NotSerialized){Acquire (OEML, 0xFFFF)IVOC (0x81, Arg0)Store (\_SB.PCI0.OEMR, Local0)Release (OEML)Return (Local0)}1: kd x ACPI!AcpiGetListEntryf743b940 ACPI!AcpiGetListEntry struct _LIST_ENTRY [ 0x899c6328 - 0x899c6328 ]1: kd dx -r1 (*((ACPI!_LIST_ENTRY *)0xf743b940))(*((ACPI!_LIST_ENTRY *)0xf743b940)) [Type: _LIST_ENTRY][0x000] Flink : 0x899c6328 [Type: _LIST_ENTRY *][0x004] Blink : 0x899c6328 [Type: _LIST_ENTRY *]if (!interface) {if (!(state-Flags PCISUPP_GOT_SLOT_INFO)) {state-Flags | PCISUPP_GOT_SLOT_INFO;status GetPciAddress(state-PciObj,PciConfigSpaceHandlerWorker,(PVOID)state,state-Bus,state-Slot);1: kd kc#00 ACPI!GetPciAddress01 ACPI!PciConfigSpaceHandlerWorker02 ACPI!PciConfigSpaceHandler03 ACPI!InternalOpRegionHandler04 ACPI!AccessBaseField05 ACPI!AccessFieldData06 ACPI!ReadFieldObj07 ACPI!RunContext08 ACPI!DispatchCtxtQueue09 ACPI!StartTimeSlicePassive0a ACPI!ACPIWorker0b nt!PspSystemThreadStartup0c nt!KiThreadStartup1: kd dvPciObj 0x899affacCompletionRoutine 0xf740d62cContext 0x89987378Bus 0x899873b0 Slot 0x899873ac#define INITIAL_RUN_COMPLETION -1RtlZeroMemory(state, sizeof(GET_ADDRESS_CONTEXT));state-PciObject PciObj;state-CompletionRoutine CompletionRoutine;state-CompletionContext Context;state-Bus Bus;state-Slot Slot;state-RunCompletion INITIAL_RUN_COMPLETION;return GetPciAddressWorker(PciObj,STATUS_SUCCESS,NULL,(PVOID)state);1: kd kc#00 ACPI!GetPciAddressWorker01 ACPI!GetPciAddress02 ACPI!PciConfigSpaceHandlerWorker03 ACPI!PciConfigSpaceHandler04 ACPI!InternalOpRegionHandler05 ACPI!AccessBaseField06 ACPI!AccessFieldData07 ACPI!ReadFieldObj08 ACPI!RunContext09 ACPI!DispatchCtxtQueue0a ACPI!StartTimeSlicePassive0b ACPI!ACPIWorker0c nt!PspSystemThreadStartup0d nt!KiThreadStartup1: kd dvAcpiObject 0x899affacStatus 0n0Result 0x00000000Context 0x899bf408buffer unsigned char [64] 1: kd dt GET_ADDRESS_CONTEXT 0x899bf408ACPI!GET_ADDRESS_CONTEXT0x000 PciObject : 0x899affac _NSObj0x004 Bus : 0x899873b0 0x008 Slot : 0x899873ac _PCI_SLOT_NUMBER0x00c ParentBus : 0 0x010 ParentSlot : _PCI_SLOT_NUMBER0x014 Flags : 00x018 Address : 00x01c BaseBusNumber : 00x020 RunCompletion : 0n-1 //#define INITIAL_RUN_COMPLETION -10x024 CompletionRoutine : 0xf740d62c void ACPI!PciConfigSpaceHandlerWorker00x028 CompletionContext : 0x89987378 Void//// First, determine the slot number.//if (!(state-Flags PCISUPP_CHECKED_ADR)) {//// Get the _ADR.//state-Flags | PCISUPP_CHECKED_ADR;status ACPIGetNSAddressAsync(state-PciObject,GetPciAddressWorker,(PVOID)state,(state-Address),NULL);#define PCISUPP_CHECKED_HID 1#define PCISUPP_CHECKED_PCI_DEVICE 2#define PCISUPP_CHECKED_ADR 8#define PCISUPP_IS_PCI_DEVICE 0x10#define PCISUPP_CHECKED_PARENT 0x20#define PCISUPP_CHECKED_PCI_BRIDGE 0x40#define PCISUPP_CHECKED_CID 0x80#define PCISUPP_GOT_SLOT_INFO 0x100#define PCISUPP_GOT_BUS_INFO 0x200#define PCISUPP_CHECKED_CRS 0x400#define PCISUPP_COMPLETING_IS_PCI 0x800#define PCISUPP_GOT_SCOPE 0x1000#define PCISUPP_CHECKED_BBN 0x2000#define PCISUPP_CHECKED_ADR 8#define PCISUPP_CHECKED_BBN 0x20001: kd kc#00 ACPI!ACPIGet01 ACPI!GetPciAddressWorker02 ACPI!GetPciAddress03 ACPI!PciConfigSpaceHandlerWorker04 ACPI!PciConfigSpaceHandler05 ACPI!InternalOpRegionHandler06 ACPI!AccessBaseField07 ACPI!AccessFieldData08 ACPI!ReadFieldObj09 ACPI!RunContext0a ACPI!DispatchCtxtQueue0b ACPI!StartTimeSlicePassive0c ACPI!ACPIWorker0d nt!PspSystemThreadStartup0e nt!KiThreadStartup1: kd dvTarget 0x899affacObjectID 0x5244415fFlags 0x48040402SimpleArgument 0x00000000SimpleArgumentSize 0CallBackRoutine 0xf740ceeaCallBackContext 0x899bf4081: kd u f740ceeaACPI!GetPciAddressWorker [d:\srv03rtm\base\busdrv\acpi\driver\nt\pciopregion.c 986]:f740ceea 55 push ebpf740ceeb 8bec mov ebp,espf740ceed 83ec44 sub esp,44hf740cef0 a1a88c43f7 mov eax,dword ptr [ACPI!__security_cookie (f7438ca8)]f740cef5 53 push ebxf740cef6 56 push esif740cef7 8b7514 mov esi,dword ptr [ebp14h]f740cefa 85f6 test esi,esiwindbg .open -a fffffffff740ceea1: kd dt GET_ADDRESS_CONTEXT 0x899bf408ACPI!GET_ADDRESS_CONTEXT0x000 PciObject : 0x899affac _NSObj0x004 Bus : 0x899873b0 0x008 Slot : 0x899873ac _PCI_SLOT_NUMBER0x00c ParentBus : 0 0x010 ParentSlot : _PCI_SLOT_NUMBER0x014 Flags : 80x018 Address : 00x01c BaseBusNumber : 00x020 RunCompletion : 0n00x024 CompletionRoutine : 0xf740d62c void ACPI!PciConfigSpaceHandlerWorker00x028 CompletionContext : 0x89987378 Void1: kd u f740d62cACPI!PciConfigSpaceHandlerWorker [d:\srv03rtm\base\busdrv\acpi\driver\nt\pciopregion.c 544]:f740d62c 55 push ebpf740d62d 8bec mov ebp,espf740d62f 83ec44 sub esp,44hf740d632 a1a88c43f7 mov eax,dword ptr [ACPI!__security_cookie (f7438ca8)]f740d637 53 push ebxf740d638 8b5d14 mov ebx,dword ptr [ebp14h]f740d63b 56 push esif740d63c 57 push ediwindbg .open -a fffffffff740d62c1: kd dt PCI_CONFIG_STATE 0x89987378ACPI!PCI_CONFIG_STATE0x000 AccessType : 00x004 OpRegion : 0x899b0b50 _NSObj0x008 Address : 0xd80x00c Size : 40x010 Data : 0x8997dd84 - 00x014 Context : 00x018 CompletionHandler : 0xf7420914 Void0x01c CompletionContext : 0x8997c0ac Void0x020 PciObj : 0x899affac _NSObj0x024 ParentObj : (null)0x028 CompletionHandlerType : 00x02c Flags : 0x1000x030 RunCompletion : 0n00x034 Slot : _PCI_SLOT_NUMBER0x038 Bus : 0 0x039 IsPciDeviceResult : 0 1: kd u 0xf7420914ACPI!RestartCtxtCallback [d:\srv03rtm\base\busdrv\acpi\driver\amlinew\sched.c 401]:f7420914 55 push ebpf7420915 8bec mov ebp,espf7420917 56 push esif7420918 8b7508 mov esi,dword ptr [ebp8]f742091b 57 push edif742091c 6a01 push 1f742091e bf603f43f7 mov edi,offset ACPI!string (f7433f60)f7420923 57 push edi1: kd kc#00 ACPI!AMLIAsyncEvalObject01 ACPI!ACPIGet02 ACPI!GetPciAddressWorker03 ACPI!GetPciAddress04 ACPI!PciConfigSpaceHandlerWorker05 ACPI!PciConfigSpaceHandler06 ACPI!InternalOpRegionHandler07 ACPI!AccessBaseField08 ACPI!AccessFieldData09 ACPI!ReadFieldObj0a ACPI!RunContext0b ACPI!DispatchCtxtQueue0c ACPI!StartTimeSlicePassive0d ACPI!ACPIWorker0e nt!PspSystemThreadStartup0f nt!KiThreadStartup1: kd gBreakpoint 37 hiteax899b00f0 ebx00000000 ecx899b00f0 edx00000000 esi899b00f0 edi899050e0eipf741f8c9 espf791aa94 ebpf791aac4 iopl0 nv up ei pl zr na pe nccs0008 ss0010 ds0023 es0023 fs0030 gs0000 efl00000246ACPI!AsyncEvalObject:f741f8c9 55 push ebp1: kd kc#00 ACPI!AsyncEvalObject01 ACPI!AMLIAsyncEvalObject02 ACPI!ACPIGet03 ACPI!GetPciAddressWorker04 ACPI!GetPciAddress05 ACPI!PciConfigSpaceHandlerWorker06 ACPI!PciConfigSpaceHandler07 ACPI!InternalOpRegionHandler08 ACPI!AccessBaseField09 ACPI!AccessFieldData0a ACPI!ReadFieldObj0b ACPI!RunContext0c ACPI!DispatchCtxtQueue0d ACPI!StartTimeSlicePassive0e ACPI!ACPIWorker0f nt!PspSystemThreadStartup10 nt!KiThreadStartup1: kd gBreakpoint 42 hiteax00000000 ebx899b010c ecx899b010c edx89904fe4 esif7438ca8 edi00000000eipf74207d4 espf791aa70 ebpf791aa90 iopl0 nv up ei ng nz ac pe cycs0008 ss0010 ds0023 es0023 fs0030 gs0000 efl00000297ACPI!RestartContext:f74207d4 55 push ebp1: kd kc#00 ACPI!RestartContext01 ACPI!AsyncEvalObject02 ACPI!AMLIAsyncEvalObject03 ACPI!ACPIGet04 ACPI!GetPciAddressWorker05 ACPI!GetPciAddress06 ACPI!PciConfigSpaceHandlerWorker07 ACPI!PciConfigSpaceHandler08 ACPI!InternalOpRegionHandler09 ACPI!AccessBaseField0a ACPI!AccessFieldData0b ACPI!ReadFieldObj0c ACPI!RunContext0d ACPI!DispatchCtxtQueue0e ACPI!StartTimeSlicePassive0f ACPI!ACPIWorker10 nt!PspSystemThreadStartup11 nt!KiThreadStartup1: kd dvpctxt 0x89903000fDelayExecute 0x00 1: kd x ACPI!gReadyQueuef743a928 ACPI!gReadyQueue struct _ctxtq1: kd dx -r1 (*((ACPI!_ctxtq *)0xf743a928))(*((ACPI!_ctxtq *)0xf743a928)) [Type: _ctxtq][0x000] dwfCtxtQ : 0x0 [Type: unsigned long][0x004] pkthCurrent : 0x89981ca0 [Type: _KTHREAD *][0x008] pctxtCurrent : 0x8997c000 [Type: _ctxt *][0x00c] plistCtxtQ : 0x0 [Type: _List *][0x010] dwmsTimeSliceLength : 0x64 [Type: unsigned long][0x014] dwmsTimeSliceInterval : 0x64 [Type: unsigned long][0x018] pfnPauseCallback : 0x0 [Type: void (__cdecl*)(void *)][0x01c] PauseCBContext : 0x0 [Type: void *][0x020] mutCtxtQ [Type: _mutex][0x028] Timer [Type: _KTIMER][0x050] DpcStartTimeSlice [Type: _KDPC][0x070] DpcExpireTimeSlice [Type: _KDPC][0x090] WorkItem [Type: _WORK_QUEUE_ITEM]1: kd kc#00 ACPI!RunContext01 ACPI!DispatchCtxtQueue02 ACPI!StartTimeSlicePassive03 ACPI!ACPIWorker04 nt!PspSystemThreadStartup05 nt!KiThreadStartup1: kd kc#00 ACPI!RunContext01 ACPI!DispatchCtxtQueue02 ACPI!StartTimeSlicePassive03 ACPI!ACPIWorker04 nt!PspSystemThreadStartup05 nt!KiThreadStartup1: kd dvpctxt 0x89903000 //新的pctxt 0x89903000pctxtSave 0xf741d711pkthSave 0x00000008rc 0n-19870392321: kd gBreakpoint 45 hiteax00000000 ebxf743a948 ecxf743a948 edx00002700 esi89903000 edi89904fe4eipf741d82f espf791ad14 ebpf791ad34 iopl0 nv up ei ng nz na pe nccs0008 ss0010 ds0023 es0023 fs0030 gs0000 efl00000286ACPI!RunContext0x11f:f741d82f ff570c call dword ptr [edi0Ch] ds:0023:89904ff0{ACPI!ProcessEvalObj (f741ef2b)}1: kd kc#00 ACPI!ACPIGet01 ACPI!GetPciAddressWorker02 ACPI!ACPIGetWorkerForInteger03 ACPI!AsyncCallBack04 ACPI!RunContext05 ACPI!DispatchCtxtQueue06 ACPI!StartTimeSlicePassive07 ACPI!ACPIWorker08 nt!PspSystemThreadStartup09 nt!KiThreadStartup//// Is there a _BBN to run?//tempObj ACPIAmliGetNamedChild(bus, PACKED_BBN);if (tempObj) {//// This device must be the child of a root PCI bus.//if (!(state-Flags PCISUPP_CHECKED_BBN)) {state-Flags | PCISUPP_CHECKED_BBN;status ACPIGetNSIntegerAsync(bus,PACKED_BBN,GetPciAddressWorker,(PVOID)state,(state-BaseBusNumber),NULL);1: kd kc#00 ACPI!AMLIAsyncEvalObject01 ACPI!ACPIGet02 ACPI!GetPciAddressWorker03 ACPI!ACPIGetWorkerForInteger04 ACPI!AsyncCallBack05 ACPI!RunContext06 ACPI!DispatchCtxtQueue07 ACPI!StartTimeSlicePassive08 ACPI!ACPIWorker09 nt!PspSystemThreadStartup0a nt!KiThreadStartup1: kd dvpns 0x899b00acpdataResult 0x89985164icArgs 0n0pdataArgs 0x00000000pfnAsyncCallBack 0xf7407364pvContext 0x89985138pHData 0x000000081: kd kc#00 ACPI!RestartContext01 ACPI!AsyncEvalObject02 ACPI!AMLIAsyncEvalObject03 ACPI!ACPIGet04 ACPI!GetPciAddressWorker05 ACPI!ACPIGetWorkerForInteger06 ACPI!AsyncCallBack07 ACPI!RunContext08 ACPI!DispatchCtxtQueue09 ACPI!StartTimeSlicePassive0a ACPI!ACPIWorker0b nt!PspSystemThreadStartup0c nt!KiThreadStartup1: kd dvpctxt 0x89901000 //新的pctxt 0x89901000fDelayExecute 0x00 1: kd kc#00 ACPI!RunContext01 ACPI!DispatchCtxtQueue02 ACPI!StartTimeSlicePassive03 ACPI!ACPIWorker04 nt!PspSystemThreadStartup05 nt!KiThreadStartup1: kd dvpctxt 0x89901000pctxtSave 0xf741d711pkthSave 0x00000008rc 0n-19870474241: kd kc#00 ACPI!PciConfigSpaceHandlerWorker01 ACPI!GetPciAddressWorker02 ACPI!ACPIGetWorkerForInteger03 ACPI!AsyncCallBack04 ACPI!RunContext05 ACPI!DispatchCtxtQueue06 ACPI!StartTimeSlicePassive07 ACPI!ACPIWorker08 nt!PspSystemThreadStartup09 nt!KiThreadStartup1: kd dvAcpiObject 0x899b00acCompletionStatus 0n0Result 0x00000000Context 0x899873781: kd dt PCI_CONFIG_STATE 0x89987378ACPI!PCI_CONFIG_STATE0x000 AccessType : 00x004 OpRegion : 0x899b0b50 _NSObj0x008 Address : 0xd80x00c Size : 40x010 Data : 0x8997dd84 - 00x014 Context : 00x018 CompletionHandler : 0xf7420914 Void0x01c CompletionContext : 0x8997c0ac Void0x020 PciObj : 0x899affac _NSObj0x024 ParentObj : (null)0x028 CompletionHandlerType : 00x02c Flags : 0x100 #define PCISUPP_GOT_SLOT_INFO 0x1000x030 RunCompletion : 0n00x034 Slot : _PCI_SLOT_NUMBER0x038 Bus : 0 0x039 IsPciDeviceResult : 0 switch (state-AccessType) {case RSACCESS_READ:} else {//// Do config space op through HAL//bytes HalGetBusDataByOffset(PCIConfiguration,state-Bus,state-Slot.u.AsULONG,state-Data,state-Address,state-Size);1: kd kc#00 hal!HalGetBusDataByOffset01 ACPI!PciConfigSpaceHandlerWorker02 ACPI!GetPciAddressWorker03 ACPI!ACPIGetWorkerForInteger04 ACPI!AsyncCallBack05 ACPI!RunContext06 ACPI!DispatchCtxtQueue07 ACPI!StartTimeSlicePassive08 ACPI!ACPIWorker09 nt!PspSystemThreadStartup0a nt!KiThreadStartup1: kd dvBusDataType PCIConfiguration (0n4)BusNumber 0SlotNumber 0Buffer 0x8997dd84Offset 0xd8Length 4bus struct _BUS_HANDLER1: kd db 0x8997dd848997dd84 00 00 00 00 00 00 00 00-00 00 00 00 20 00 00 00 ............ ...8997dd94 03 00 00 00 41 43 46 55-18 00 00 00 03 00 01 00 ....ACFU........1: kd guBreakpoint 23 hiteax00000103 ebx00000000 ecx00000103 edx000c0802 esi89906cd0 edi899aee58eipf73fbc48 espf789ef54 ebpf789ef60 iopl0 nv up ei pl zr na pe nccs0008 ss0010 ds0023 es0023 fs0030 gs0000 efl00000246ACPI!ACPIBuildProcessRunMethodPhaseCheckSta0x4e:f73fbc48 8bd8 mov ebx,eax0: kd db 0x8997dd848997dd84 00 00 00 00 00 00 00 00-00 00 00 00 20 00 00 00 ............ ...8997dd94 03 00 00 00 41 43 46 55-18 00 00 00 03 00 01 00 ....ACFU........8997dda4 71 9b 41 f7 f4 0b 9b 89-58 c1 97 89 54 45 52 4d q.A.....X...TERM0: kd db 0x8997dd848997dd84 00 00 00 00 说明不存在BAT2Method (VMPS, 1, NotSerialized){Acquire (OEML, 0xFFFF)IVOC (0x81, Arg0)Store (\_SB.PCI0.OEMR, Local0) //最后会运行ACPI!StoreRelease (OEML)Return (Local0)}Device (BAT2){Name (_HID, EisaId (PNP0C0A)) // _HID: Hardware IDName (_UID, 0x02) // _UID: Unique IDName (_PCL, Package (0x01) // _PCL: Power Consumer List{\_SB})Method (_STA, 0, NotSerialized) // _STA: Status{Return (VMPS (0x02))}