POFXCALLBACKENUMERATEUNMASKEDINTERRUPTS callback function (pepfx.h)

The EnumerateUnmaskedInterrupts routine enumerates interrupt sources whose interrupts are unmasked and enabled.

Syntax

POFXCALLBACKENUMERATEUNMASKEDINTERRUPTS Pofxcallbackenumerateunmaskedinterrupts;

NTSTATUS Pofxcallbackenumerateunmaskedinterrupts(
  [in, optional] POHANDLE PluginHandle,
  [in, optional] ULONG EnumerateFlags,
  [in]           PPO_ENUMERATE_INTERRUPT_SOURCE_CALLBACK Callback,
  [in]           PVOID CallbackContext,
  [in, out]      PPEP_UNMASKED_INTERRUPT_INFORMATION InterruptInformation
)
{...}

Parameters

[in, optional] PluginHandle

A POHANDLE value. If non-NULL, this parameter is a handle that identifies the platform extension plug-in (PEP), in which case EnumerateUnmaskedInterrupts enumerates only interrupts that are managed by this PEP. If this parameter is NULL, EnumerateUnmaskedInterrupts enumerates all interrupts in the hardware platform that are unmasked and enabled.

[in, optional] EnumerateFlags

No flags are currently defined. Set this parameter to PEP_ENUMERATE_UNMASKED_INTERRUPT_FLAGS_NONE (0x0).

[in] Callback

A pointer to a caller-implemented EnumerateInterruptSource callback routine. This callback routine is called once for each interrupt source whose interrupt is unmasked. These callbacks occur synchronously before the EnumerateUnmaskedInterrupts routine returns.

[in] CallbackContext

A pointer to a callback context. This pointer is passed as a parameter to the EnumerateInterruptSource callback routine pointed to by the Callback parameter. The contents of the callback context are PEP-defined, and are opaque to the power management framework (PoFx).

[in, out] InterruptInformation

A pointer to a caller-allocated buffer whose size is at least sizeof(PEP_UNMASKED_INTERRUPT_INFORMATION) bytes. EnumerateUnmaskedInterrupts will use this buffer to transfer interrupt information to the PEP during calls to the PEP's EnumerateInterruptSource callback routine.

Return value

EnumerateUnmaskedInterrupts returns STATUS_SUCCESS if the call successfully enumerates the interrupts. Possible error return values include the following status code.

Return value Description
STATUS_INVALID_PARAMETER
The Size or Version member of the PEP_UNMASKED_INTERRUPT_INFORMATION structure contains an invalid value.

Remarks

This routine is implemented by PoFx and is called by the PEP. The EnumerateUnmaskedInterrupts member of the PEP_KERNEL_INFORMATION_STRUCT_V3 structure is a pointer to an EnumerateUnmaskedInterrupts routine.

Before the platform enters a system power state in which the interrupt controllers are power-gated, the PEP can call EnumerateUnmaskedInterrupts to get the information it needs to properly configure wake-up controllers for interrupts that are to remain unmasked.

The PEP can call this routine at IRQL <= HIGH_LEVEL.

Requirements

Requirement Value
Minimum supported client Supported starting with Windows 10.
Target Platform Windows
Header pepfx.h (include Pep_x.h)
IRQL <= HIGH_LEVEL

See also

EnumerateInterruptSource

PEP_KERNEL_INFORMATION_STRUCT_V3

PEP_UNMASKED_INTERRUPT_INFORMATION