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


Поиск и сопоставление аппаратных ресурсов в драйверах UMDF 1.x

Предупреждение

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 версии 2.0 или более поздней, ознакомьтесь с Поиск и сопоставление аппаратных ресурсов.

Драйвер UMDF 1.x получает аппаратные ресурсы в методе обратного вызова IPnpCallbackHardware2::OnPrepareHardware. Драйвер использует интерфейс IWDFCmResourceList для просмотра переведенного списка ресурсов и определения регистров с отображением в память, портов ввода-вывода и прерываний.

Драйвер перебирает список ресурсов, вызывая IWDFCmResourceList::GetCount и IWDFCmResourceList::GetDescriptor.

Если драйвер получает регистры, сопоставленные с памятью, он должен вызвать IWDFDevice3::MapIoSpace для сопоставления регистров, прежде чем получить к ним доступ. Как правило, драйвер отображает свои регистры в методе IPnpCallbackHardware2::OnPrepareHardware. Драйвер освобождает регистры в обратном вызове IPnpCallbackHardware2::OnReleaseHardware путем вызова IWDFDevice3::UnmapIoSpace. Обратите внимание, что сопоставление не требуется для портов ввода-вывода.

Пример, демонстрирующий, как драйвер находит и сопоставляет ресурсы регистров, сопоставленных с памятью, см. в разделе IWDFDevice3::MapIoSpace.