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

Andrei Voinescu voinescu.andrei at gmail.com
Thu Apr 29 17:00:29 EEST 2010


Vezi cu KeInitializeEvent, tu ai acolo NotificationEvent, dacă
folosești așa trebuie să resetezi evenimentul după fiecare "folosire".


Andrei

On Thu, Apr 29, 2010 at 4:43 PM, Alexandru Juncu
<alexandrujuncu at gmail.com> wrote:
> On Thu, Apr 29, 2010 at 1:20 PM, Andrei Voinescu
> <voinescu.andrei at gmail.com> wrote:
>> On Thu, Apr 29, 2010 at 12:46 PM, Alexandru Juncu
>> <alexandrujuncu at gmail.com> wrote:
>>> 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?
>> Cum să fie true? Unde ai tu operația de KeWait?
>> btw, scrie că dacă parametrul e TRUE, trebuie KeSetEvent să ruleze la
>> PASSIVE_LEVEL, so ... ai garantat cel puțin un BSOD de la asta.
>
> Ok..pus pe false..da tot albastră e situația...
>>>
>>> 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
>>> _______________________________________________
>>> 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
> _______________________________________________
> http://elf.cs.pub.ro/so2/wiki/resurse/lista-discutii


More information about the pso mailing list