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

Alexandru Juncu alexandrujuncu at gmail.com
Thu Apr 29 12:46:26 EEST 2010


On Thu, Apr 29, 2010 at 11:32 AM, Andrei Voinescu
<voinescu.andrei at gmail.com> wrote:
> On Thu, Apr 29, 2010 at 9:30 AM, Alexandru Juncu
> <alexandrujuncu at gmail.com> wrote:
>> Am si eu acceaasi problema de ceva zile... codul meu arata cam asa:
>>
>> struct _MY_DEVICE_DATA {
>> ...
>>        KEVENT event;
>>        KDPC dpc;
>> } my_device_data;
>>
>> VOID myDpcRoutine(KDPC* dpc, PVOID context, PVOID arg1, PVOID arg2)
>> {
>>
>>        my_device_data *my_dev = (my_device_data*) context;
>>        DbgPrint("DPC Routine\n");
>>        KeSetEvent(&my_dev->event, IO_NO_INCREMENT, TRUE);
> Citiți cu atenție documentația KeSetEvent [0]
Deja am citit-o de vreo 5 ori... Dacă te referi la parametrul wait, zice
"Specifies whether the call to KeSetEvent is to be followed
immediately by a call to one of the KeWaitXxx routines. "
Deci ar trebui true, nu?

Oricum, am încercat și cu FALSE și nu a mers :(
>
> Andrei
>
> [0] http://www.osronline.com/ddkx/kmarch/k105_1prm.htm
>> }
>> BOOLEAN MyInterruptHandler(PKINTERRUPT interruptObj, PVOID serviceContext)
>> {
>>        my_device_data *my_dev = (my_device_data*) serviceContext;
>>        ....
>>        KeInsertQueueDpc(&my_dev->dpc, NULL, NULL);
>>        ....
>> }
>> NTSTATUS DriverEntry()
>> {
>>    ....
>>    KeInitializeEvent(&com1_data->event, NotificationEvent , FALSE);
>>    KeInitializeDpc(&com1_data->dpc, myDpcRoutine, &com1_data);
>> }
>> _______________________________________________
>> http://elf.cs.pub.ro/so2/wiki/resurse/lista-discutii
>>
> _______________________________________________
> http://elf.cs.pub.ro/so2/wiki/resurse/lista-discutii



-- 
Alexandru Juncu

Cisco Networking Academy Instructor
ROSEdu Member
Computer Science Teaching Assistant


More information about the pso mailing list