When a PC Card generates an interrupt on the PC Card interrupt line, Card Services calls the interrupt service function handler that is associated with a specified socket and function pair. Interrupt service function handlers must conform to the CARD_ISR prototype.
typedef void
(*CARD_ISR)( UINT32 uISRContextData );
When a PC Card generates an interrupt, Card Services first determines which function caused the interrupt, then calls the associated interrupt service function with the specified socket and function pair. For single function cards, the function number is 0.
A stream interface driver calls CardRequestIRQ to register an interrupt service routine for a specified socket and function pair. Card Services clears the interrupt condition in the card configuration registers when the interrupt callback function returns.
The interrupt callback function must clear the function interrupt request source on the PC Card and return as quickly as possible. If more time is required for processing the interrupt, the callback function should spawn a thread for further processing of the interrupt.
The interrupt service function handler is not a true kernel-mode interrupt service routine. Rather, it is a user-mode callback function that Card Services calls directly.
CARD_ISR, CardRequestIRQ, CardReleaseIRQ