Функция IoDisconnectInterrupt (wdm.h)
Программа IoDisconnectInterrupt освобождает набор объектов прерываний драйвера устройства при приостановке или удалении устройства или при выгрузке драйвера.
Синтаксис
void IoDisconnectInterrupt(
[in] PKINTERRUPT InterruptObject
);
Параметры
[in] InterruptObject
Указатель на структуру KINTERRUPT. Вызывающий объект получил этот указатель из вызова IoConnectInterrupt, который ранее подключил прерывание или прерывания.
Возвращаемое значение
Никакой
Замечания
Драйвер должен настроить устройство для выдачи прерываний только в том случае, если эти прерывания подключены. Не удалось предотвратить прерывания устройства при отключении прерываний, что может привести к нестабильности системы. Например, если устройство использует линию прерывания, активированную на уровне, и устройство выдает запрос прерывания при отключении прерываний устройства, другие устройства в строке не признают прерывание, и прерывание продолжится. Перед вызовом IoDisconnectInterruptдрайвер должен настроить устройство для остановки выдачи прерываний. После вызова IoConnectInterruptдрайвер должен настроить устройство для запуска прерываний.
Если драйвер сохранил указатель на его объект прерывания в расширении устройства объекта устройства или в расширении контроллера объекта контроллера, он должен вызывать IoDisconnectInterrupt перед вызовом IoDeleteDevice или IoDeleteController.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно начиная с Windows 2000. |
целевая платформа | Всеобщий |
заголовка | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
библиотеки | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
правил соответствия DDI | HwStorPortProhibitedDDIs(storport), IrqlIoPassive4(wdm), PowerIrpDDis(wdm) |