OEMRequestSysIntr

This function implements IOCTL_HAL_TRANSLATE_IRQ and IOCTL_HAL_REQUEST_SYSINTR in the OEMIoControl function.

DWORD OEMRequestSysIntr(
  DWORD Irq
);

Parameters

  • Irq
    [in] IRQ within the allowed IRQ range.

Return Values

The return value depends on the condition associated with the IRQ passed to this function. The following table shows the return values for this function.

IRQ condition Return value
IRQ not already mapped. Next available new SYSINTR mapping is created, and that SYSINTR is returned.
IRQ already mapped and not shareable. Returns the SYSINTR that is mapped.
IRQ already mapped and shareable. New SYSINTR mapping is created and the next available SYSINTR is used.

Remarks

The OEMInit routine tries to map the IRQ and SYSINTR tables for static mapping on built-in devices when their drivers simply read their SYSINTR values from the registry. The OAL must also be responsible for determining which interrupts are shareable — typically, each of the four PCI interrupts — and which interrupts are not shareable.

In general, a device driver should never request a SYSINTR. If it must, a device driver should never request a new SYSINTR more than once. In particular, a PCI device should read its SYSINTR from the registry because the PCI bus driver has already requested it.

Most legacy drivers request a new SYSINTR that is different from the one the PCI bus has requested. This still works, provided installable ISRs are used, but you have used a SYSINTR.

Be sure that the Ethernet debugging adapter Init routine calls OEMRequestSysIntr. For more information, see the OEMEthInit function implementation in the %_WINCEROOT%\Platform\ArmIntegrator\Kernel\HAL\Halether.c directory.

Requirements

OS Versions: Windows CE .NET 4.0 and later.
Header: Oalintr.h.
Link Library: Platform OAL.

See Also

OEMEthInit | OEMInit | OEMIoControl

Last updated on Wednesday, April 13, 2005

© 2005 Microsoft Corporation. All rights reserved.