ISRHandler (Compact 2013)

3/28/2014

This function prototype is used by OEMs and independent hardware vendors (IHVs) to create and export an installable interrupt handler.

Syntax

DWORD ISRHandler(
  DWORD InstanceIndex
);

Parameters

  • InstanceIndex
    [in] Instance of the interrupt service routine (ISR).

Return Value

The SYSINTR value that corresponds to the interrupt service thread (IST) that should be schedule to run. This can also include returning SYSINTR_CHAIN if the interrupt service request (IRQ) is not handled by your handler.

Remarks

When the kernel receives the first SYSINTR that is not SYSINTR_CHAIN, it uses that value to trigger the IST and discontinues processing the chain.

If the original IRQ is still set, the kernel calls the OEM adaptation layer (OAL), and the interrupt handler chain restarts from the beginning.

If no handler is available to handle an IRQ, SYSINTR_NOP is returned to the kernel.

At this point, the OEM can only disable the interrupt to prevent an interrupt cycle from occurring.

An OEM/IHV that installs a driver must ensure that the hardware does not interrupt until the driver and interrupt handler are in place. Otherwise, the OAL cannot know how to properly handle the event, and the event is lost.

Note

The name of this function is chosen by the OEM, and does not need to be ISRHandler. The function name must be passed to the LoadIntChainHandler function.

Requirements

Library

Developer Implemented

See Also

Reference

Kernel Functions