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

Mihnea Donciu mihnea.donciu at gmail.com
Thu Apr 29 04:12:20 EEST 2010


Salut,

Si eu ma chinui de cateva zile cu aceeasi problema ca si tine (BSOD din 
cauza lui KeWaitForSingleObject). Ai reusit sa gasesti solutia pana la urma?

Mihnea

On 4/25/2010 12:53 PM, Radu Ciobanu wrote:
> 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
>
>
> _______________________________________________
> pso mailing list
> pso at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso
>    

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/lurker/list/pso.html/attachments/20100429/9e76e4c7/attachment.htm>


More information about the pso mailing list