From: Don Burn on
The default for IRQConfig is latched, so you are set.


Don Burn (MVP, Windows DKD)
Windows Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr



"dsrking" <dsrking2006(a)gmail.com> wrote in message
news:1eb70afe-d1f1-4d49-ac0f-7ca6b3ff11f6(a)y3g2000vbm.googlegroups.com:

> Thanks maxim,
>
> >>Also: ISA interrupts are Latched and cannot be shared.
>
> I don't know where we mentioned the ISA interrupts are Latched.
> In .inf file, i mentioned the interrupt number as, "IRQConfig=5".
>
> Regards,
> D.

From: dsrking on
Thanks DonBurn,

So my settings are correct (i.e., interrupts are latched). But what
settings I am missing, i didn't get any interrupt?

Regards,
D.
From: matt_sykes on
On 16 Sep, 12:57, dsrking <dsrking2...(a)gmail.com> wrote:
> Thanks matt_sykes,
>
> I have assigned a non shared, dedicated interrupt for my ISA device.
> If we write driver in WDM, how can we register interrupts and
> everything.

Hmm, seem to recall the func is someting like
IoRegisterInterruptVector() and the IoConnectInterrupt() or somethign
like that for WDM drivers (and in fact for pre WDM too, which is the
last time I used it (NT4)). Have a butchers at the DDK (or WDK as it
is now called))

> If it is possible in WDM means, the advanced version of
> WDF should support ISA interrupts, right?
>
> Could you please clarify my doubts, whether it is possible to get
> interrupt in WDF driver model?

As for WDF cant help you, I havent used it.

>
> Thanks in Advance,
> D.

From: dsrking on
hi matt_sykes,

I installed WinDDK 6000 and got WDM based PORTIO sample. There is no
code for interrupt registration. Is it possible to write a code for
non PNP (ISA) get Resources function like below??? (Note: I mentioned
the interrupt number in .inf file IRQConfig portion)

------------------------------------------------------------------------------------------------------------------------------
case CmResourceTypeInterrupt:
dx->GotInterrupt = true;
dx->Irql = (KIRQL)resource->u.Interrupt.Level;
dx->Vector = resource->u.Interrupt.Vector;
dx->Affinity = resource->u.Interrupt.Affinity;
dx->Mode = (resource->Flags == CM_RESOURCE_INTERRUPT_LATCHED)
? Latched : LevelSensitive;
KdPrint(("RetrieveResources: Interrupt vector %x IRQL %d Affinity
%d Mode %d",
dx->Vector, dx->Irql, dx->Affinity, dx->Mode));
break;

------------------------------------------------------------------------------------------------------------------------------

* there is no function like "IoRegisterInterruptVector()" what u
mentioned in your previous post.
* For WDM, how can we give interrupt number to driver like hard coded
or my above method is right (interrupt number in .inf and get the
interrupt resource in driver code)?

Thanks in Advance.

Regards,
D.
From: matt_sykes on
On 20 Sep, 16:52, dsrking <dsrking2...(a)gmail.com> wrote:
> hi matt_sykes,
>
> I installed WinDDK 6000 and got WDM based PORTIO sample. There is no
> code for interrupt registration. Is it possible to write a code for
> non PNP (ISA) get Resources function like below??? (Note: I mentioned
> the interrupt number in .inf file IRQConfig portion)
>
> ---------------------------------------------------------------------------­---------------------------------------------------
>                 case CmResourceTypeInterrupt:
>                         dx->GotInterrupt = true;
>                         dx->Irql = (KIRQL)resource->u.Interrupt.Level;
>                         dx->Vector = resource->u.Interrupt.Vector;
>                         dx->Affinity = resource->u.Interrupt.Affinity;
>                         dx->Mode = (resource->Flags == CM_RESOURCE_INTERRUPT_LATCHED)
>                                 ? Latched : LevelSensitive;
>                         KdPrint(("RetrieveResources: Interrupt vector %x IRQL %d Affinity
> %d Mode %d",
>                                 dx->Vector, dx->Irql, dx->Affinity, dx->Mode));
>                         break;
>
> ---------------------------------------------------------------------------­---------------------------------------------------
>
> * there is no function like "IoRegisterInterruptVector()" what u
> mentioned in your previous post.
> * For WDM, how can we give interrupt number to driver like hard coded
> or my above method is right (interrupt number in .inf and get the
> interrupt resource in driver code)?
>
> Thanks in Advance.
>
> Regards,
> D.

You need to store the interrupt (and other resource requirements) in
the registry in the drivers service key. You read this at drive start
up and claim the resources.

As for the interrupt registration, I said its somehting like that.
Just look in the DDK till you find it.