W_HANDLE_INTERRUPT_HANDLER callback function

Note NDIS 5. x has been deprecated and is superseded by NDIS 6. x. For new NDIS driver development, see Network Drivers Starting with Windows Vista. For information about porting NDIS 5. x drivers to NDIS 6. x, see Porting NDIS 5.x Drivers to NDIS 6.0.

The MiniportHandleInterrupt function is required if a driver's NIC generates interrupts. MiniportHandleInterrupt does the deferred processing of all outstanding interrupt operations.

Syntax

W_HANDLE_INTERRUPT_HANDLER MiniportHandleInterrupt;

VOID MiniportHandleInterrupt(
  _In_ NDIS_HANDLE MiniportAdapterContext
)
{ ... }

Parameters

  • MiniportAdapterContext [in]
    Specifies the handle to a miniport driver-allocated context area in which the driver maintains per-NIC state, set up by MiniportInitialize.

Return value

None

Remarks

When a NIC generates an interrupt, a miniport's MiniportISR or MiniportDisableInterrupt function dismisses the interrupt on the NIC, saves any necessary state about the operation, and returns control as quickly as possible, thereby deferring most interrupt-driven I/O operations to MiniportHandleInterrupt. MiniportHandleInterrupt does the deferred processing of all outstanding interrupt operations.

If the NIC shares an IRQ, MiniportHandleInterrupt is called only if the MiniportISR function returned QueueMiniportHandleInterrupt set to TRUE.

When MiniportHandleInterrupt is called, interrupts have typically been disabled on the NIC by the MiniportISR or MiniportDisableInterrupt function. Before it returns control, MiniportHandleInterrupt can reenable interrupts on the NIC.

For more information about operations that a miniport driver's MiniportHandleInterrupt function typically performs and for details on how to perform those operations, see DPC Handler.

A miniport driver can call NdisMDeregisterMiniport from its MiniportInitialize or MiniportHalt function to release resources that it allocated with NdisMRegisterInterrupt. After NdisMDeregisterMiniport returns, NDIS does not call a miniport driver's MiniportISR or MiniportHandleInterrupt functions.

Requirements

Target platform

Desktop

Version

Not supported for NDIS 6.0 drivers in Windows Vista. Use MiniportInterruptDPC instead. Supported for NDIS 5.1 drivers in Windows Vista and Microsoft Windows XP.

Header

Ndis.h (include Ndis.h)

IRQL

<= DISPATCH_LEVEL

See also

MiniportDisableInterrupt

MiniportEnableInterrupt

MiniportInitialize

MiniportISR

MiniportSend

MiniportSendPackets

MiniportWanSend

NdisAdjustBufferLength

NdisAllocateBuffer

NdisAllocateMemoryWithTag

NdisAllocatePacket

NdisMArcIndicateReceive

NdisMDeregisterInterrupt

NdisMEthIndicateReceive

NdisMFddiIndicateReceive

NdisMIndicateReceivePacket

NdisMRegisterInterrupt

NdisMSynchronizeWithInterrupt

NdisMTrIndicateReceive

NdisMWanIndicateReceive

NDIS_PACKET

NDIS_PACKET_OOB_DATA

Send comments about this topic to Microsoft