ACPI_DRIVER_INTERNAL stop code (0x000000A3)

Hi,

I am writing a driver that needs to interact with the ACPI (ASL) code
(Operating System: Windows XP Professional - SP2).

ASL code is embedded in to the system BIOS and my driver registers a
call back by doing the following:

ntStatus =
devExtension->ACPIInterfaces.RegisterForDeviceNotifications(pAcpiPDo ,

(PDEVICE_NOTIFY_CALLBACK)ACPICallback,

(PDEVICE_EXTENSION)pDevExt );

The driver runs normally without any problem if Driver verifier is
disabled. But if I enable Driver Verifier for my driver, I get a blue
screen with 0x000000A3 stop code.

ACPI_DRIVER_INTERNAL

0x000000a3 (0x00000002,0x00090147,0x82015CE0,0x82015D98)

I couldn't get much info from the DDK help except that the BIOS could be
source of the problem. But I highly doubt this could be the issue since
my driver runs normally without Driver Verifier.

Any experience / pointers on how to debug this bug check?

Appreciate your help & time.

Thanks,
Vijay

0: kd> !analyze -v
************************************************************************
*******
*
*
* Bugcheck Analysis
*
*
*
************************************************************************
*******

ACPI_DRIVER_INTERNAL (a3)
The ACPI Driver detected an internal inconsistency. The inconsistency is
so severe that continuing to run would cause serious problems.
The ACPI driver calls this when the state is so inconsistent that
proceeding
would actually be dangerous. The problem may or may not be a BIOS issue,
but
there is no way to tell.
Arguments:
Arg1: 00000002
Arg2: 00090147
Arg3: 82015ce0
Arg4: 82015d98

Debugging Details:

*** Error in in reading nt!_ETHREAD @ 00000000
*** Error in in reading nt!_ETHREAD @ 00000000
*** Error in in reading nt!_ETHREAD @ 00000000
*** Error in in reading nt!_ETHREAD @ 00000000

DEFAULT_BUCKET_ID: DRIVER_FAULT

BUGCHECK_STR: 0xA3

LOCK_ADDRESS: 8055a560 -- (!locks 8055a560)

Resource @ nt!IopDeviceTreeLock (0x8055a560) Shared 1 owning threads
Threads: 82101da8-01<*>
1 total locks, 1 locks currently held

PNP_TRIAGE:
Lock address : 0x8055a560
Thread Count : 1
Thread address: 0x82101da8
Thread wait : 0x372

LAST_CONTROL_TRANSFER: from 804f8afd to 8052a5d8

STACK_TEXT:
f88c2374 804f8afd 00000003 f88c26d0 00000000
nt!RtlpBreakWithStatusInstruction
f88c23c0 804f96e8 00000003 82015d98 baeef280
nt!KiBugCheckDebugBreak+0x19
f88c27a0 804f9c37 000000a3 00000002 00090147 nt!KeBugCheck2+0x574
f88c27c0 baed4b63 000000a3 00000002 00090147 nt!KeBugCheckEx+0x1b
f88c27dc baedbe56 00090147 82015ce0 82015d98
ACPI!_ACPIInternalErrorEx+0x1b
f88c27fc baeddb2d 82015ce0 f88c2818 baeeacce
ACPI!ACPIInternalGetDeviceExtension+0x36
f88c2808 baeeacce 82015ce0 82b12fd0 f88c284c
ACPI!OSPowerFindPowerInfoByContext+0xd
f88c2818 bad4bc72 82015ce0 bad4bcb0 82069978
ACPI!ACPIRegisterForDeviceNotifications+0xe
f88c284c bad4268d 820698c0 82015ce0 820698c0
MYDRV!GetACPIInterfaces+0x102
f88c29ac bad421ba 820698c0 82b12ed8 00000000
MYDRV!HandleStartDevice+0x19d
f88c29cc 804eeeb1 820698c0 82b12ed8 806e4428 MYDRV!
MYDRVDispatchPnP+0x11a
f88c29dc 80656128 82b12fd0 82b12ff4 82062688 nt!IopfCallDriver+0x31
f88c2a00 80660c0b 82062688 81fe2040 82b12e00 nt!IovCallDriver+0xa0
f88c2a14 804eeeb1 820698c0 82b12ed8 806e4428 nt!ViDriverDispatchPnp+0xd7
f88c2a24 80656128 82b12ffc f88c2ab4 82b12ed8 nt!IopfCallDriver+0x31
f88c2a48 80591823 f88c2ab4 82121e50 00000000 nt!IovCallDriver+0xa0
f88c2a74 805918a1 82062688 f88c2a90 00000000 nt!IopSynchronousCall+0xb7
f88c2ab8 804f5f18 82121e50 820959f8 00000001 nt!IopStartDevice+0x4d
f88c2ad4 80590f5b 82121e50 82095901 00000000
nt!PipProcessStartPhase1+0x4e
f88c2d2c 8059142e 820ecc88 00000001 00000000
nt!PipProcessDevNodeTree+0x1db
f88c2d54 804f66c4 00000003 8055a5c0 8056375c
nt!PiProcessStartSystemDevices+0x3a
f88c2d7c 80537757 00000000 00000000 82101da8
nt!PipDeviceActionWorker+0x170
f88c2dac 805ce794 00000000 00000000 00000000 nt!ExpWorkerThread+0xef
f88c2ddc 805450ce 80537668 00000001 00000000
nt!PspSystemThreadStartup+0x34
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16

STACK_COMMAND: kb

FOLLOWUP_IP:
ACPI!_ACPIInternalErrorEx+1b
baed4b63 cc int 3

FAULTING_SOURCE_CODE:

SYMBOL_STACK_INDEX: 4

FOLLOWUP_NAME: MachineOwner

SYMBOL_NAME: ACPI!_ACPIInternalErrorEx+1b

MODULE_NAME: ACPI

IMAGE_NAME: ACPI.sys

DEBUG_FLR_IMAGE_TIMESTAMP: 41107d27

FAILURE_BUCKET_ID: 0xA3_VRF_ACPI!_ACPIInternalErrorEx+1b

BUCKET_ID: 0xA3_VRF_ACPI!_ACPIInternalErrorEx+1b

Followup: MachineOwner