GIISR_INFO (Windows Embedded CE 6.0)
1/5/2010
This structure is passed to the interrupt service routine (ISR) through KernelLibIoControl after the ISR is loaded with LoadIntChainHandler.
Syntax
typedef struct _GIISR_INFO {
DWORD SysIntr;
BOOL CheckPort;
BOOL PortIsIO;
BOOL UseMaskReg;
DWORD PortAddr;
DWORD PortSize;
DWORD Mask;
DWORD MaskAddr;
} GIISR_INFO, *PGIISR_INFO;
Members
SysIntr
System interrupt number (SYSINTR) for the ISR to return if the associated device is asserting the interrupt request (IRQ).This value is read from the registry.
CheckPort
If TRUE, the ISR reads a port on the device to determine whether the device is asserting the IRQ. A PortAddr is required to address the port that is read to determine if the device is asserting the interrupt.If FALSE, the ISR assumes the device is asserting the IRQ and immediately returns SysIntr.
This option is used only if the interrupt line that the device is using is not shared, or if the ISR is guaranteed to be last in the chain; for example, the ISR is installed with the last LoadIntChainHandler call on this IRQ.
In general, use this option only if there is no means to detect whether the device is asserting the IRQ.
PortIsIO
If TRUE, the port is the I/O port.This determines whether the port is I/O or memory-mapped.
This is relevant for x86 architectures because all other microprocessors are memory-mapped.
UseMaskReg
If TRUE, read from MaskAddr to obtain mask. Optionally, another device register can be used as a mask.This feature is activated if the UseMaskReg field is TRUE. The associated MaskAddr field is the statically mapped virtual address of the mask register.
This option is used if the device has multiple interrupt sources that are enabled by the register pointed to by MaskAddr. Disabled bits mask off the interrupt pending register pointed to by PortAddr.
PortAddr
Port address.This is a statically-mapped virtual address that is obtained through TransBusAddrToStatic.
This is required if CheckPort is TRUE.
- PortSize
Port data width in 1, 2, or 4 bytes.
Mask
A mask to use on the port to determine if the device is asserting the IRQ.The Mask member is used to mask off the value of the PortAddr so individual bits can be examined by Mask and the contents of the register residing at PortAddr.
If the result is nonzero, the ISR returns SysIntr.
Otherwise, SYSINTR_CHAIN is returned, indicating that the device is not currently asserting the IRQ.
- MaskAddr
Address of register to use as mask.
Requirements
Header | giisr.h |
Windows Embedded CE | Windows CE .NET 4.0 and later |
See Also
Reference
OAL Structures
LoadIntChainHandler