news 2026/5/29 18:21:39

ACPI!ParsePackageLen函数分析--非常重要

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ACPI!ParsePackageLen函数分析--非常重要

ACPI!ParsePackageLen函数分析--非常重要

ACPI!ParseScope函数的作用就是分析opcode后调用PushTerm函数建立帧

然后调用parseterm函数处理帧。

while (!IsStackEmpty(pctxt))
{
CHKDEBUGGERREQ();
pfh = (PFRAMEHDR)pctxt->LocalHeap.pbHeapEnd;
ASSERT(pfh->pfnParse != NULL);

rc = pfh->pfnParse(pctxt, pfh, rc);


0: kd> p
eax=8997de00 ebx=f743a948 ecx=8997c000 edx=00000014 esi=8997c000 edi=8997de20
eip=f741d80d esp=f789a144 ebp=f789a158 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!RunContext+0xfd:
f741d80d 837f0c00 cmp dword ptr [edi+0Ch],0 ds:0023:8997de2c={ACPI!ParseTerm (f7427a34)}


0: kd> kc
#
00 ACPI!ParseTerm
01 ACPI!RunContext
02 ACPI!InsertReadyQueue
03 ACPI!RestartContext
04 ACPI!SyncLoadDDB
05 ACPI!AMLILoadDDB
06 ACPI!ACPIInitializeDDB
07 ACPI!ACPIInitializeDDBs
08 ACPI!ACPIInitialize
09 ACPI!ACPIInitStartACPI
0a ACPI!ACPIRootIrpStartDevice
0b ACPI!ACPIDispatchIrp
0c nt!IofCallDriver
0d nt!IopSynchronousCall
0e nt!IopStartDevice
0f nt!PipProcessStartPhase1
10 nt!PipProcessDevNodeTree
11 nt!PipDeviceActionWorker
12 nt!PipRequestDeviceAction
13 nt!IopInitializeBootDrivers
14 nt!IoInitSystem
15 nt!Phase1Initialization
16 nt!PspSystemThreadStartup
17 nt!KiThreadStartup
0: kd> dv
pctxt = 0x8997c000
pterm = 0x8997de20
rc = 0n0


if (pterm->pamlterm->dwfOpcode & OF_VARIABLE_LIST)
{
ParsePackageLen(&pctxt->pbOp, &pterm->pbOpEnd);
}


DWORD LOCAL ParsePackageLen(PBYTE *ppbOp, PBYTE *ppbOpNext)
{
DWORD dwLen;
BYTE bFollowCnt, i;

ENTER((2, "ParsePackageLen(pbOp=%x,ppbOpNext=%x)\n", *ppbOp, ppbOpNext));

if (ppbOpNext != NULL)
*ppbOpNext = *ppbOp;

dwLen = (DWORD)(**ppbOp);
(*ppbOp)++;
bFollowCnt = (BYTE)((dwLen & 0xc0) >> 6);
if (bFollowCnt != 0)
{
dwLen &= 0x0000000f;
for (i = 0; i < bFollowCnt; ++i)
{
dwLen |= (DWORD)(**ppbOp) << (i*8 + 4);
(*ppbOp)++;
}
}

if (ppbOpNext != NULL)
*ppbOpNext += dwLen;

EXIT((2, "ParsePackageLen=%x (pbOp=%x,pbOpNext=%x)\n",
dwLen, *ppbOp, ppbOpNext? *ppbOpNext: 0));
return dwLen;
} //ParsePackageLen

0: kd> t
eax=8997c03c ebx=8997c000 ecx=8997c000 edx=00000014 esi=8997de20 edi=00000000
eip=f74266a0 esp=f789a118 ebp=f789a130 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!ParsePackageLen:
f74266a0 55 push ebp
0: kd> kc
#
00 ACPI!ParsePackageLen
01 ACPI!ParseTerm
02 ACPI!RunContext
03 ACPI!InsertReadyQueue
04 ACPI!RestartContext
05 ACPI!SyncLoadDDB
06 ACPI!AMLILoadDDB
07 ACPI!ACPIInitializeDDB
08 ACPI!ACPIInitializeDDBs
09 ACPI!ACPIInitialize
0a ACPI!ACPIInitStartACPI
0b ACPI!ACPIRootIrpStartDevice
0c ACPI!ACPIDispatchIrp
0d nt!IofCallDriver
0e nt!IopSynchronousCall
0f nt!IopStartDevice
10 nt!PipProcessStartPhase1
11 nt!PipProcessDevNodeTree
12 nt!PipDeviceActionWorker
13 nt!PipRequestDeviceAction
14 nt!IopInitializeBootDrivers
15 nt!IoInitSystem
16 nt!Phase1Initialization
17 nt!PspSystemThreadStartup
18 nt!KiThreadStartup
0: kd> dv
ppbOp = 0x8997c03c
ppbOpNext = 0x8997de34
0: kd> dd 0x8997c03c
8997c03c f74c8cbd 00000000 00000000 00000000
8997c04c 00000000 00000000 f741eeb5 00000000
8997c05c f789a1bc 000a0008 00000000 8997c068
8997c06c 8997c068 00000000 00000000 00000000
8997c07c 00000000 00000000 00000000 01000013
8997c08c 00000000 00000000 f741eff5 8997c000
8997c09c 00000000 00000000 00000000 899af000
8997c0ac 00000000 00000000 00000000 00000000
0: kd> db f74c8cbd
f74c8cbd 46 58 49 53 41 5f 08 5f-41 44 52 0c 00 00 07 00 FXISA_._ADR.....
f74c8ccd 5b 82 4a 14 4d 42 52 44-08 5f 48 49 44 0c 41 d0 [.J.MBRD._HID.A.

if (ppbOpNext != NULL)
*ppbOpNext = *ppbOp;


0: kd> dv
ppbOp = 0x8997c03c
ppbOpNext = 0x8997de34
0: kd> dx -id 0,0,899a2278 -r1 ((ACPI!unsigned char * *)0x8997de34)
((ACPI!unsigned char * *)0x8997de34) : 0x8997de34 [Type: unsigned char * *]
0xf74c8cbd : 0x46 [Type: unsigned char *]

0: kd> p
eax=f74c8cbd ebx=8997de34 ecx=8997c000 edx=00000014 esi=8997c03c edi=00000000
eip=f74266e1 esp=f789a108 ebp=f789a114 iopl=0 nv up ei ng nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000282
ACPI!ParsePackageLen+0x41:
f74266e1 0fb638 movzx edi,byte ptr [eax] ds:0023:f74c8cbd=46
0: kd> p
eax=f74c8cbd ebx=8997de34 ecx=8997c000 edx=00000014 esi=8997c03c edi=00000046
eip=f74266e4 esp=f789a108 ebp=f789a114 iopl=0 nv up ei ng nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000282
ACPI!ParsePackageLen+0x44:
f74266e4 8bd7 mov edx,edi
0: kd> p
eax=f74c8cbd ebx=8997de34 ecx=8997c000 edx=00000046 esi=8997c03c edi=00000046
eip=f74266e6 esp=f789a108 ebp=f789a114 iopl=0 nv up ei ng nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000282
ACPI!ParsePackageLen+0x46:
f74266e6 40 inc eax
0: kd> p
eax=f74c8cbe ebx=8997de34 ecx=8997c000 edx=00000046 esi=8997c03c edi=00000046
eip=f74266e7 esp=f789a108 ebp=f789a114 iopl=0 nv up ei ng nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000286
ACPI!ParsePackageLen+0x47:
f74266e7 c1ea06 shr edx,6
0: kd> p
eax=f74c8cbe ebx=8997de34 ecx=8997c000 edx=00000001 esi=8997c03c edi=00000046
eip=f74266ea esp=f789a108 ebp=f789a114 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!ParsePackageLen+0x4a:
f74266ea 80e203 and dl,3
0: kd> p
eax=f74c8cbe ebx=8997de34 ecx=8997c000 edx=00000001 esi=8997c03c edi=00000046
eip=f74266ed esp=f789a108 ebp=f789a114 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!ParsePackageLen+0x4d:
f74266ed 8906 mov dword ptr [esi],eax ds:0023:8997c03c=f74c8cbd
0: kd> p
eax=f74c8cbe ebx=8997de34 ecx=8997c000 edx=00000001 esi=8997c03c edi=00000046
eip=f74266ef esp=f789a108 ebp=f789a114 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!ParsePackageLen+0x4f:
f74266ef 7428 je ACPI!ParsePackageLen+0x79 (f7426719) [br=0]
0: kd> p
eax=f74c8cbe ebx=8997de34 ecx=8997c000 edx=00000001 esi=8997c03c edi=00000046
eip=f74266f1 esp=f789a108 ebp=f789a114 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!ParsePackageLen+0x51:
f74266f1 83e70f and edi,0Fh
0: kd> p
eax=f74c8cbe ebx=8997de34 ecx=8997c000 edx=00000001 esi=8997c03c edi=00000006
eip=f74266f4 esp=f789a108 ebp=f789a114 iopl=0 nv up ei pl nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000206
ACPI!ParsePackageLen+0x54:
f74266f4 84d2 test dl,dl
0: kd> p
eax=f74c8cbe ebx=8997de34 ecx=8997c000 edx=00000001 esi=8997c03c edi=00000006
eip=f74266f6 esp=f789a108 ebp=f789a114 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!ParsePackageLen+0x56:
f74266f6 7621 jbe ACPI!ParsePackageLen+0x79 (f7426719) [br=0]
0: kd> p
eax=f74c8cbe ebx=8997de34 ecx=8997c000 edx=00000001 esi=8997c03c edi=00000006
eip=f74266f8 esp=f789a108 ebp=f789a114 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!ParsePackageLen+0x58:
f74266f8 c7450804000000 mov dword ptr [ebp+8],4 ss:0010:f789a11c=8997c03c
0: kd> p
eax=f74c8cbe ebx=8997de34 ecx=8997c000 edx=00000001 esi=8997c03c edi=00000006
eip=f74266ff esp=f789a108 ebp=f789a114 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!ParsePackageLen+0x5f:
f74266ff 0fb6d2 movzx edx,dl
0: kd> p
eax=f74c8cbe ebx=8997de34 ecx=8997c000 edx=00000001 esi=8997c03c edi=00000006
eip=f7426702 esp=f789a108 ebp=f789a114 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!ParsePackageLen+0x62:
f7426702 0fb618 movzx ebx,byte ptr [eax] ds:0023:f74c8cbe=58
0: kd> p
eax=f74c8cbe ebx=00000058 ecx=8997c000 edx=00000001 esi=8997c03c edi=00000006
eip=f7426705 esp=f789a108 ebp=f789a114 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!ParsePackageLen+0x65:
f7426705 8b4d08 mov ecx,dword ptr [ebp+8] ss:0010:f789a11c=00000004
0: kd> p
eax=f74c8cbe ebx=00000058 ecx=00000004 edx=00000001 esi=8997c03c edi=00000006
eip=f7426708 esp=f789a108 ebp=f789a114 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!ParsePackageLen+0x68:
f7426708 83450808 add dword ptr [ebp+8],8 ss:0010:f789a11c=00000004
0: kd> p
eax=f74c8cbe ebx=00000058 ecx=00000004 edx=00000001 esi=8997c03c edi=00000006
eip=f742670c esp=f789a108 ebp=f789a114 iopl=0 nv up ei pl nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000206
ACPI!ParsePackageLen+0x6c:
f742670c d3e3 shl ebx,cl
0: kd> p
eax=f74c8cbe ebx=00000580 ecx=00000004 edx=00000001 esi=8997c03c edi=00000006
eip=f742670e esp=f789a108 ebp=f789a114 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!ParsePackageLen+0x6e:
f742670e 0bfb or edi,ebx
0: kd> p
eax=f74c8cbe ebx=00000580 ecx=00000004 edx=00000001 esi=8997c03c edi=00000586
eip=f7426710 esp=f789a108 ebp=f789a114 iopl=0 nv up ei pl nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000202
ACPI!ParsePackageLen+0x70:
f7426710 40 inc eax
0: kd> p
eax=f74c8cbf ebx=00000580 ecx=00000004 edx=00000001 esi=8997c03c edi=00000586
eip=f7426711 esp=f789a108 ebp=f789a114 iopl=0 nv up ei ng nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000282
ACPI!ParsePackageLen+0x71:
f7426711 4a dec edx
0: kd> db f74c8cbf
f74c8cbf 49 53 41 5f 08 5f 41 44-52 0c 00 00 07 00 5b 82 ISA_._ADR.....[.
f74c8ccf 4a 14 4d 42 52 44 08 5f-48 49 44 0c 41 d0 0c 02 J.MBRD._HID.A...
f74c8cdf 08 5f 55 49 44 0a 1f 08-52 53 52 43 11 46 0b 0a ._UID...RSRC.F..
f74c8cef b2 47 01 10 00 10 00 01-10 47 01 24 00 24 00 01 .G.......G.$.$..
f74c8cff 02 47 01 28 00 28 00 01-02 47 01 2c 00 2c 00 01 .G.(.(...G.,.,..
f74c8d0f 02 47 01 2e 00 2e 00 01-02 47 01 30 00 30 00 01 .G.......G.0.0..
f74c8d1f 02 47 01 34 00 34 00 01-02 47 01 38 00 38 00 01 .G.4.4...G.8.8..
f74c8d2f 02 47 01 3c 00 3c 00 01-02 47 01 50 00 50 00 01 .G.<.<...G.P.P..
0: kd> p
eax=f74c8cbf ebx=00000580 ecx=00000004 edx=00000000 esi=8997c03c edi=00000586
eip=f7426712 esp=f789a108 ebp=f789a114 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!ParsePackageLen+0x72:
f7426712 8906 mov dword ptr [esi],eax ds:0023:8997c03c=f74c8cbe
0: kd> p
eax=f74c8cbf ebx=00000580 ecx=00000004 edx=00000000 esi=8997c03c edi=00000586
eip=f7426714 esp=f789a108 ebp=f789a114 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!ParsePackageLen+0x74:
f7426714 75ec jne ACPI!ParsePackageLen+0x62 (f7426702) [br=0]
0: kd> p
eax=f74c8cbf ebx=00000580 ecx=00000004 edx=00000000 esi=8997c03c edi=00000586
eip=f7426716 esp=f789a108 ebp=f789a114 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!ParsePackageLen+0x76:
f7426716 8b5d0c mov ebx,dword ptr [ebp+0Ch] ss:0010:f789a120=8997de34
0: kd> p
eax=f74c8cbf ebx=8997de34 ecx=00000004 edx=00000000 esi=8997c03c edi=00000586
eip=f7426719 esp=f789a108 ebp=f789a114 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!ParsePackageLen+0x79:
f7426719 85db test ebx,ebx
0: kd> p
eax=f74c8cbf ebx=8997de34 ecx=00000004 edx=00000000 esi=8997c03c edi=00000586
eip=f742671b esp=f789a108 ebp=f789a114 iopl=0 nv up ei ng nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000282
ACPI!ParsePackageLen+0x7b:
f742671b 7402 je ACPI!ParsePackageLen+0x7f (f742671f) [br=0]
0: kd> p
eax=f74c8cbf ebx=8997de34 ecx=00000004 edx=00000000 esi=8997c03c edi=00000586
eip=f742671d esp=f789a108 ebp=f789a114 iopl=0 nv up ei ng nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000282
ACPI!ParsePackageLen+0x7d:
f742671d 013b add dword ptr [ebx],edi ds:0023:8997de34=f74c8cbd
0: kd> dd 8997de34
8997de34 f74c8cbd f74c92a2 f7438df0 00000000
8997de44 00000000 00000001 899b0af4 8997c040
8997de54 504f4353 00000028 00000001 f74274fd
8997de64 f74c92a2 00000000 899af0f0 899af330
8997de74 899af000 8997c040 4d524554 00000034
8997de84 00000003 f7427a34 f74c77f6 f74c92a2
8997de94 f74c96c5 f7438df0 899affac 00000001
8997dea4 00000001 899af520 8997c040 504f4353
0: kd> dd f74c8cbd+00000586
f74c9243 502f825b 085f5257 5244415f 0700030c
f74c9253 50805b00 025f4943 600a400a 5013815b
f74c9263 035f4943 41424d50 26400020 41424253
f74c9273 1b825b20 5f425355 44415f08 00020c52
f74c9283 5f080007 12575250 080a0206 825b010a
f74c9293 4544490f 415f085f 010c5244 14000700
f74c92a3 4f564927 7d700243 e90b797d 00100a40
f74c92b3 080a6879 00690000 5f032f5c 505f4253
0: kd> ? f74c8cbd+00000586
Evaluate expression: -145976765 = f74c9243
0: kd> dv
ppbOp = 0x0000000c
ppbOpNext = 0x8997de34
0: kd> p
eax=f74c8cbf ebx=8997de34 ecx=00000004 edx=00000000 esi=8997c03c edi=00000586
eip=f742671f esp=f789a108 ebp=f789a114 iopl=0 nv up ei ng nz ac po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000292
ACPI!ParsePackageLen+0x7f:
f742671f ff0dbcb143f7 dec dword ptr [ACPI!giIndent (f743b1bc)] ds:0023:f743b1bc=00000007
0: kd> p
eax=f74c8cbf ebx=8997de34 ecx=00000004 edx=00000000 esi=8997c03c edi=00000586
eip=f7426725 esp=f789a108 ebp=f789a114 iopl=0 nv up ei pl nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000206
ACPI!ParsePackageLen+0x85:
f7426725 6a00 push 0
0: kd> p
eax=f74c8cbf ebx=8997de34 ecx=00000004 edx=00000000 esi=8997c03c edi=00000586
eip=f7426727 esp=f789a104 ebp=f789a114 iopl=0 nv up ei pl nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000206
ACPI!ParsePackageLen+0x87:
f7426727 68146943f7 push offset ACPI!`string' (f7436914)
0: kd> p
eax=f74c8cbf ebx=8997de34 ecx=00000004 edx=00000000 esi=8997c03c edi=00000586
eip=f742672c esp=f789a100 ebp=f789a114 iopl=0 nv up ei pl nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000206
ACPI!ParsePackageLen+0x8c:
f742672c 6a02 push 2
0: kd> p
eax=f74c8cbf ebx=8997de34 ecx=00000004 edx=00000000 esi=8997c03c edi=00000586
eip=f742672e esp=f789a0fc ebp=f789a114 iopl=0 nv up ei pl nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000206
ACPI!ParsePackageLen+0x8e:
f742672e e80182ffff call ACPI!IsTraceOn (f741e934)

0: kd> p
eax=00000586 ebx=8997c000 ecx=00000004 edx=00000000 esi=8997de20 edi=00000000
eip=f7427b26 esp=f789a11c ebp=f789a130 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!ParseTerm+0xf2:
f7427b26 59 pop ecx

0: kd> dv
pctxt = 0x8997c000
pterm = 0x8997de20
rc = 0n0
0: kd> dx -id 0,0,899a2278 -r1 ((ACPI!_term *)0x8997de20)
((ACPI!_term *)0x8997de20) : 0x8997de20 [Type: _term *]
[+0x000] FrameHdr [Type: _framehdr]
[+0x010] pbOpTerm : 0xf74c8cbb : 0x5b [Type: unsigned char *]
[+0x014] pbOpEnd : 0xf74c9243 : 0x5b [Type: unsigned char *]
[+0x018] pbScopeEnd : 0xf74c92a2 : 0x14 [Type: unsigned char *]
[+0x01c] pamlterm : 0xf7438df0 [Type: _amlterm *]
[+0x020] pnsObj : 0x0 [Type: _NSObj *]
[+0x024] iArg : 0 [Type: int]
[+0x028] icArgs : 1 [Type: int]
[+0x02c] pdataArgs : 0x899b0af4 [Type: _ObjData *]
[+0x030] pdataResult : 0x8997c040 [Type: _ObjData *]
0: kd> dx -id 0,0,899a2278 -r1 ((ACPI!_ctxt *)0x8997c000)
((ACPI!_ctxt *)0x8997c000) : 0x8997c000 [Type: _ctxt *]
[+0x000] dwSig : 0x54585443 [Type: unsigned long]
[+0x004] pbCtxtEnd : 0x8997e000 : 0x54 [Type: unsigned char *]
[+0x008] listCtxt [Type: _List]
[+0x010] listQueue [Type: _List]
[+0x018] pplistCtxtQueue : 0x0 [Type: _List * *]
[+0x01c] plistResources : 0x0 [Type: _List *]
[+0x020] dwfCtxt : 0x10 [Type: unsigned long]
[+0x024] pnsObj : 0x0 [Type: _NSObj *]
[+0x028] pnsScope : 0x899affac [Type: _NSObj *]
[+0x02c] powner : 0x899af330 [Type: _objowner *]
[+0x030] pcall : 0x8997df34 [Type: _call *]
[+0x034] pnctxt : 0x0 [Type: _nestedctxt *]
[+0x038] dwSyncLevel : 0x0 [Type: unsigned long]
[+0x03c] pbOp : 0xf74c8cbf : 0x49 [Type: unsigned char *]
[+0x040] Result [Type: _ObjData]
[+0x054] pfnAsyncCallBack : 0xf741eeb5 [Type: void (__cdecl*)(_NSObj *,long,_ObjData *,void *)]
[+0x058] pdataCallBack : 0x0 [Type: _ObjData *]
[+0x05c] pvContext : 0xf789a1bc [Type: void *]
[+0x060] Timer [Type: _KTIMER]
[+0x088] Dpc [Type: _KDPC]
[+0x0a8] pheapCurrent : 0x899af000 [Type: _heap *]
[+0x0ac] CtxtData [Type: _ctxtdata]
[+0x0bc] LocalHeap [Type: _heap]

0: kd> db 0xf74c8cbf-10
f74c8caf 50 5f 08 5f 41 44 52 0c-00 00 01 00 5b 82 46 58 P_._ADR.....[.FX
f74c8cbf 49 53 41 5f 08 5f 41 44-52 0c 00 00 07 00 5b 82 ISA_._ADR.....[.

46 58 算出的长度是0x586 取100 0110 的前6位,第7位是1,下面还有1个字节!!
加起来是0x586!!!

46 58 59 算出的长度是0x586 取1000 0110 的前6位,第8位是1,下面还有2个字节!!
加起来是0x59586!!!

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

企业级应用中的模块加载错误实战解决方案

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个模块加载错误诊断沙盒环境&#xff0c;模拟企业级应用中可能遇到的各种模块加载问题场景&#xff0c;包括&#xff1a;1)不同服务器配置下的模块加载行为&#xff1b;2)各…

作者头像 李华
网站建设 2026/5/30 1:19:47

传统VS现代:Python下载工具开发效率对比实验

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 分别用传统方式和AI辅助方式实现同一个FTP文件下载工具。传统方式要求完整手写代码&#xff1b;AI方式只需描述需求&#xff1a;需要支持FTP协议、多文件队列下载、传输速率显示和…

作者头像 李华
网站建设 2026/5/25 20:18:55

VS2022实战应用案例分享

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个VS2022实战项目&#xff0c;包含完整的功能实现和部署方案。点击项目生成按钮&#xff0c;等待项目生成完整后预览效果 VS2022实战应用案例分享&#xff1a;从开发到部署的…

作者头像 李华
网站建设 2026/5/28 1:37:38

编程小白也能做:用快马创建你的第一个记事本应用

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个最简单的记事本Web应用&#xff0c;适合编程新手学习&#xff0c;功能包括&#xff1a;1. 纯文本输入区域 2. 保存/打开本地文件功能 3. 基本的字体样式设置(加粗/斜体) 4…

作者头像 李华
网站建设 2026/5/20 23:05:48

VibeVoice-WEB-UI是否支持语音生成任务提醒?待办事项

VibeVoice-WEB-UI&#xff1a;当TTS不再只是“朗读”&#xff0c;而是“演绎” 在播客制作人熬夜剪辑音频、有声书团队反复校对角色语气的今天&#xff0c;我们是否还能想象一种可能——只需输入一段结构化文本&#xff0c;系统就能自动理解谁该说什么、何时停顿、以何种情绪表…

作者头像 李华
网站建设 2026/5/30 10:45:27

零基础教程:用AI制作你的第一个Chrome插件

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 生成一个最简单的Chrome插件入门示例&#xff1a;当用户点击插件图标时&#xff0c;弹出窗口显示当前网页标题和URL。包含完整的manifest.json配置&#xff0c;使用最基础的browse…

作者头像 李华