Поделиться через


Функция WdmlibIoConnectInterruptEx (iointex.h)

Функция WdmlibIoConnectInterruptEx регистрирует подпрограмму обработки прерываний для прерываний устройства.

Синтаксис

NTSTATUS WdmlibIoConnectInterruptEx(
  [in, out] PIO_CONNECT_INTERRUPT_PARAMETERS Parameters
);

Параметры

[in, out] Parameters

Указатель на структуру IO_CONNECT_INTERRUPT_PARAMETERS, указывающую подпрограмму обработки прерываний и устройства. При возврате WdmlibIoConnectInterruptEx обновляет эту структуру для хранения сведений о прерываниях устройства.

Возвращаемое значение

Функция возвращает STATUS_SUCCESS при успешном выполнении или соответствующее значение ошибки NTSTATUS при сбое. Возможные значения ошибок:

Возвращаемый код Описание
STATUS_INVALID_DEVICE_REQUEST
Операция недопустима для указанного устройства. Например, Параметры->версии = CONNECT_LINE_BASED, а система назначила устройству несколько сообщений прерываний.
STATUS_INVALID_PARAMETER
Вызывающий объект указал недопустимый параметр. Эта ошибка возникает, например, когда вызывающий объект устройства NULL.
STATUS_INVALID_PARAMETER_1
Вызывающий объект указал недопустимое значение для элемента версии структуры, на которую указывает параметры. параметры->версии должны быть одним из CONNECT_LINE_BASED, CONNECT_MESSAGE_BASED или CONNECT_FULLY_SPECIFIED.
STATUS_INVALID_PARAMETER_10
Вызывающий объект указал недопустимое значение для десятого члена структуры, на которую параметры указывает. Эта ошибка возникает, например, если параметры->ПолностьюSpecified.ProcessorEnableMask не имеют битов.
STATUS_NOT_FOUND
Один из аргументов не найден. Например, указанное устройство не имеет прерываний, или указанный вектор прерываний не назначается любому устройству.

Замечания

WdmlibIoConnectInterruptEx можно использовать для регистрации подпрограммы обработки прерываний как для традиционных прерываний на основе строк (например, поддерживаемых шиной PCI), так и более новых прерываний с сигналом сообщения (например, поддерживаемых pci версиями 2.2 и 3.0).

Драйверы регистрируют подпрограмму прерываний прерываний на основе строк и подпрограмму InterruptMessageService для прерываний, сигнальных сообщением. Дополнительные сведения о том, как указать элементы параметров в каждом случае, см. в IO_CONNECT_INTERRUPT_PARAMETERS.

WdmlibIoConnectInterruptEx обновляет элементы параметров , чтобы предоставить сведения о прерываниях устройства. Дополнительные сведения о WdmlibIoConnectInterruptExсм. в IO_CONNECT_INTERRUPT_PARAMETERS.

Используйте WdmlibIoDisconnectInterruptEx для отмены регистрации подпрограммы, зарегистрированной в WdmlibIoConnectInterruptEx.

Драйвер не должен программировать устройство для создания прерываний, пока он не подключил его ISR. Таким образом, ISR не может запуститься до WdmlibIoConnectInterruptEx. Однако существуют определенные устройства, такие как кнопки, которые не программируются. Для этих устройств драйвер должен быть готов обрабатывать ISR сразу после вызова WdmlibIoConnectInterruptEx. Строка прерывания может быть уже утверждается, когда вызывается WdmlibIoConnectInterruptEx и может срабатывать сразу после включения строки на контроллере прерывания до WdmlibIoConnectInterruptEx вызовов отмены.

Дополнительные сведения о регистрации подпрограммы обработки прерываний см. в регистрацииISR.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Windows Vista и более поздних версиях операционной системы Windows. Драйверы, которые также должны работать в Windows 2000, Windows XP или Windows Server 2003, могут вместо этого связаться с Iointex.lib для использования подпрограммы.
целевая платформа Всеобщий
заголовка iointex.h (include Iointex.h, Wdm.h, Ntddk.h, Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
правил соответствия DDI HwStorPortProhibitedDDIs

См. также

IO_CONNECT_INTERRUPT_PARAMETERS

ПрерываниеMessageService

прерывания

WdmlibIoDisconnectInterruptEx