Функция WdmlibIoConnectInterruptEx (iointex.h)
Функция WdmlibIoConnectInterruptEx регистрирует подпрограмму обработки прерываний для прерываний устройства.
Синтаксис
NTSTATUS WdmlibIoConnectInterruptEx(
[in, out] PIO_CONNECT_INTERRUPT_PARAMETERS Parameters
);
Параметры
[in, out] Parameters
Указатель на структуру IO_CONNECT_INTERRUPT_PARAMETERS, указывающую подпрограмму обработки прерываний и устройства. При возврате WdmlibIoConnectInterruptEx обновляет эту структуру для хранения сведений о прерываниях устройства.
Возвращаемое значение
Функция возвращает STATUS_SUCCESS при успешном выполнении или соответствующее значение ошибки NTSTATUS при сбое. Возможные значения ошибок:
Возвращаемый код | Описание |
---|---|
|
Операция недопустима для указанного устройства. Например, Параметры->версии = CONNECT_LINE_BASED, а система назначила устройству несколько сообщений прерываний. |
|
Вызывающий объект указал недопустимый параметр. Эта ошибка возникает, например, когда вызывающий объект устройства NULL. |
|
Вызывающий объект указал недопустимое значение для элемента версии структуры, на которую указывает параметры. параметры->версии должны быть одним из CONNECT_LINE_BASED, CONNECT_MESSAGE_BASED или CONNECT_FULLY_SPECIFIED. |
|
Вызывающий объект указал недопустимое значение для десятого члена структуры, на которую параметры указывает. Эта ошибка возникает, например, если параметры->ПолностьюSpecified.ProcessorEnableMask не имеют битов. |
|
Один из аргументов не найден. Например, указанное устройство не имеет прерываний, или указанный вектор прерываний не назначается любому устройству. |
Замечания
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 |