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