[pso] [PSO2][Win]DRIVER_IRQL_NOT_LESS_OR_EQUAL

ionut balosin shmennen at yahoo.com
Sun Mar 25 19:49:45 EEST 2007


Salut,

 am si eu urmatoarea problema: activez intreruperea pentru Com1 si la intrarea in ISR imi da eroare cand incerc sa accesez campuri din structura device-ului definita de mine. Astfel, sectiunea de cod din ISR este:

BOOLEAN Isr(PKINTERRUPT pInterrupt, PVOID ServiceContext) {
    PDEVICE_OBJECT device = (PDEVICE_OBJECT)ServiceContext;
    struct uart16550_dev *dev=(struct uart16550_dev*)device->DeviceExtension;
    ULONG PORT = dev->COM;     ==> AICI SE GENEREAZA BLUE SCREEN
    ....
}

iar mesajul este urmatorul:

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.

Am inteles care este cauza, insa nu ma prind ce trebuie sa fac ca sa o inlatur. 

Mentionez ca aceasta rutina este apelata automat la

                outb(inp(COM1+1) | 0x3, COM1+1)

care este in functia de open a device driver-ului. Tot in functia de open, inainte de a seta registrii serialei pentru a primi intreruperi mai fac HalGetInterruptVector + IoConnectInterrupt (creez si conectez la un interrupt object)


                                                              Multumesc.

 
---------------------------------
Never miss an email again!
Yahoo! Toolbar alerts you the instant new Mail arrives. Check it out.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://cursuri.cs.pub.ro/pipermail/pso/attachments/20070325/eae21827/attachment-0001.htm


More information about the pso mailing list