Expand Minimize

IoConnectInterruptEx routine

The IoConnectInterruptEx routine registers an interrupt-handling routine for a device's interrupts.

Syntax


NTSTATUS IoConnectInterruptEx(
  _Inout_  PIO_CONNECT_INTERRUPT_PARAMETERS Parameters
);

Parameters

Parameters [in, out]

Pointer to an IO_CONNECT_INTERRUPT_PARAMETERS structure that specifies the device and interrupt-handling routine. On return, IoConnectInterruptEx updates this structure to hold information about the device's interrupts.

Return value

The routine returns STATUS_SUCCESS on success, or the appropriate NTSTATUS error value on failure. Possible error values include:

Return codeDescription
STATUS_INVALID_DEVICE_REQUEST

The operation is invalid for the specified device. For example, Parameters->Version = CONNECT_LINE_BASED, and the system has assigned multiple interrupt messages to the device.

STATUS_INVALID_PARAMETER

The caller specified an invalid parameter. This error occurs, for example, when the caller specified NULL for the device's device object.

STATUS_INVALID_PARAMETER_1

The caller specified an invalid value for the Version member of the structure that Parameters points to. Parameters->Version must be one of CONNECT_LINE_BASED, CONNECT_MESSAGE_BASED, or CONNECT_FULLY_SPECIFIED.

STATUS_INVALID_PARAMETER_10

The caller specified an invalid value for the tenth member of the structure that Parameters points to. This error occurs, for example, when Parameters->FullySpecified.ProcessorEnableMask does not have any bits set.

STATUS_NOT_FOUND

One of the arguments was not found. For example, the specified device has no interrupts, or the specified interrupt vector is not assigned to any device.

 

Remarks

IoConnectInterruptEx can be used to register an interrupt-handling routine for both traditional line-based interrupts (such as that supported by the PCI bus), and the newer message-signaled interrupts (such as that supported by PCI versions 2.2 and 3.0).

Drivers register an InterruptService routine for line-based interrupts, and an InterruptMessageService routine for message-signaled interrupts. For more information about how to specify the members of Parameters in each case, see IO_CONNECT_INTERRUPT_PARAMETERS.

IoConnectInterruptEx updates the members of Parameters to provide information about the device's interrupts. For more information about the information provided by IoConnectInterruptEx, see IO_CONNECT_INTERRUPT_PARAMETERS.

Use IoDisconnectInterruptEx to unregister a routine registered with IoConnectInterruptEx.

Drivers must not enable interrupts until after IoConnectInterruptEx returns.

For more information about registering an interrupt-handling routine, see Registering an ISR.

Requirements

Version

Available on Windows Vista and later versions of the Windows operating system. Drivers that must also work on Windows 2000, Windows XP, or Windows Server 2003 can instead link to Iointex.lib to use the routine.

Header

Wdm.h (include Wdm.h, Ntddk.h, or Ntifs.h)

Library

Ntoskrnl.lib

IRQL

PASSIVE_LEVEL

DDI compliance rules

HwStorPortProhibitedDDIs

See also

InterruptService
InterruptMessageService
IO_CONNECT_INTERRUPT_PARAMETERS
IoDisconnectInterruptEx

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft