[pso] [tema2][windows] DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)

Radu Ciobanu crusher2007 at gmail.com
Sun Apr 25 12:53:12 EEST 2010


Salut,

In urma rularii primului testul de read (cel in care modulul solutie scrie
si modulul meu citeste), primesc si eu un BSOD cu aceeasi eroare ca a lui
Andrei, DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1).

In programul meu, in DriverInit activez intreruperile RDAI si initializez un
DPC si un event (cu memorie din NonPagedPool). La venirea unei intreruperi
de tip RDAI, citesc date de pe port cat timp exista date gata de citit si
bufferul de read nu este plin. Dupa ce fac asta, apelez InsertQueueDpc, iar
in DPC verific ce fel de intrerupere a fost si apelez KeSetEvent(readEvent,
IO_NO_INCREMENT, FALSE)

 In functia de read, astept evenimentul cu KeWaitForSingleObject(readEvent,
Executive, KernelMode, TRUE, NULL).

Nu reusesc din dump sa imi dau seama de unde vine problema, insa am observat
ca, daca scot KeWaitForSingleObject din read, nu mai apare BSOD. In rest,
toate celelalte par sa functioneze OK (se ajunge in handler-ul de
intrerupere, se ajunge in handlerul DPC, se apeleaza KeSetEvent fara sa dea
BSOD).

Iata dump-ul:

DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)
An attempt was made to access a pageable (or completely invalid) address at
an
interrupt request level (IRQL) that is too high.  This is usually
caused by drivers using improper addresses.
If kernel debugger is available get stack backtrace.
Arguments:
Arg1: f7878352, memory referenced
Arg2: 00000081, IRQL
Arg3: 00000008, value 0 = read operation, 1 = write operation
Arg4: f7878352, address which referenced memory

Debugging Details:
------------------


READ_ADDRESS:  f7878352

CURRENT_IRQL:  81

FAULTING_IP:
uart16550+1352
f7878352 ??              ???

DEFAULT_BUCKET_ID:  DRIVER_FAULT

BUGCHECK_STR:  0xD1

PROCESS_NAME:  Idle

TRAP_FRAME:  808944d4 -- (.trap 0xffffffff808944d4)
ErrCode = 00000010
eax=00000001 ebx=00000002 ecx=00000081 edx=00000004 esi=8213e26c
edi=8213e008
eip=f7878352 esp=80894548 ebp=8089456c iopl=0         nv up ei pl nz na pe
nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000
efl=00010206
<Unloaded_uart16550.sys>+0x1352:
f7878352 ??              ???
Resetting default scope

IP_MODULE_UNLOADED:
uart16550+1352
f7878352 ??              ???

LAST_CONTROL_TRANSFER:  from f7878352 to 80886a69

FAILED_INSTRUCTION_ADDRESS:
uart16550+1352
f7878352 ??              ???

STACK_TEXT:
808944d4 f7878352 badb0d00 00000004 827b61c0 nt!KiTrap0E+0x2a1
WARNING: Frame IP not in any known module. Following frames may be wrong.
80894544 81ebe4a8 00000004 f72a4037 00000000 <Unloaded_uart16550.sys>+0x1352
8089456c 808878c0 8213e008 81ebe4a8 00010081 0x81ebe4a8
8089456c 80a5439a 8213e008 81ebe4a8 00010081 nt!KiInterruptDispatch+0x40
80894600 80887d72 00000000 0000000e 00000000 hal!HalProcessorIdle+0x2
80894604 00000000 0000000e 00000000 00000000 nt!KiIdleLoop+0xa


STACK_COMMAND:  kb

FOLLOWUP_IP:
uart16550+1352
f7878352 ??              ???

SYMBOL_STACK_INDEX:  1

SYMBOL_NAME:  uart16550+1352

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: uart16550

IMAGE_NAME:  uart16550.sys

DEBUG_FLR_IMAGE_TIMESTAMP:  0

FAILURE_BUCKET_ID:  0xD1_CODE_AV_BAD_IP_uart16550+1352

BUCKET_ID:  0xD1_CODE_AV_BAD_IP_uart16550+1352

Followup: MachineOwner
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/lurker/list/pso.html/attachments/20100425/fd73ff28/attachment.htm>


More information about the pso mailing list