Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Предупреждение
UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. Новые функции не добавляются в UMDF 1, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы Windows должны использовать UMDF 2.
Архивные примеры UMDF 1 можно найти в Windows 11, версия 22H2 — обновление драйверов за май 2022 года.
Дополнительные сведения см. в разделе Начало работы сUMDF.
Драйвер UMDF, обрабатывающий аппаратные прерывания устройства, должен создать объект прерывания фреймворка для каждого прерывания, поддерживаемого каждым устройством.
Как правило, драйвер создает объекты прерывания фреймворка в IDriverEntry::OnDeviceAdd. Однако можно также создавать объекты прерываний в IPnpCallbackHardware2::OnPrepareHardware.
Чтобы создать объект прерывания платформы, драйвер должен инициализировать структуру WUDF_INTERRUPT_CONFIG и передать ее в метод IWDFDevice3::CreateInterrupt . Этот метод регистрирует следующие функции обратного вызова событий, предоставленные драйвером:
OnInterruptEnable
Включает аппаратное прерывание.
OnInterruptDisable
Отключает аппаратное прерывание.
OnInterruptIsr
Подпрограмма службы прерываний (ISR) для прерывания.
OnInterruptWorkItem
Рабочая подпрограмма для обработки прерываний.
При необходимости драйвер может вызывать IWDFInterrupt::SetPolicy или IWDFInterrupt::SetExtendedPolicy , чтобы указать дополнительные параметры прерывания.
Фреймворк вызывает функцию обратного вызова драйвера IDriverEntry::OnDeviceAdd до того, как диспетчер Plug and Play (PnP) назначит устройству системные ресурсы, такие как векторы прерываний. После того, как диспетчер PnP назначает ресурсы, фреймворк сохраняет ресурсы прерывания в объекте прерывания устройства. Драйверы, не поддерживающие Plug and Play, не могут использовать объекты прерываний.
Прерывания по сигналу сообщения (MSIs) поддерживаются в Windows Vista и более поздних версиях операционной системы. Чтобы операционная система поддерживала MSIs для устройства, INF-файл драйвера должен задать некоторые значения в реестре. Сведения о настройке этих значений см. в разделе "Включение Message-Signaled прерываний в реестре".
Если устройство может поддерживать определенное количество сообщений MSI, диспетчер PnP попытается назначить это количество сообщений устройству. Если диспетчер PnP не может назначить все сообщения, которые может поддерживать устройство, он назначит только одно сообщение устройству.
Драйвер должен создать объект прерывания в рамках фреймворка для каждого вектора прерывания или сообщения MSI, которое может поддерживать устройство. Если диспетчер PnP не предоставляет устройству все ресурсы прерывания, которые может поддерживать устройство, то дополнительные объекты прерываний не будут использоваться, а их функции обратного вызова не будут вызываться.