Функция IoReportRootDevice (ntddk.h)
Подпрограмма IoReportRootDevice сообщает об устройстве, которое не может быть обнаружено драйвером Шины PnP, диспетчеру PnP. IoReportRootDevice позволяет создать только одно устройство для каждого драйвера.
Синтаксис
NTSTATUS IoReportRootDevice(
[in] PDRIVER_OBJECT DriverObject
);
Параметры
[in] DriverObject
Указатель на объект драйвера драйвера, который обнаружил устройство.
Возвращаемое значение
IoReportRootDevice возвращает STATUS_SUCCESS об успешном выполнении или соответствующий код ошибки при сбое.
Комментарии
Драйверы для устройств, которые не могут быть обнаружены драйвером шины PnP, используют IoReportRootDevice , чтобы сообщить о своем устройстве в систему. Устройства, которые могут быть обнаружены водителем шины PnP, должны быть переданы в ответ на запрос IRP_MN_QUERY_DEVICE_RELATIONS .
Драйвер обычно вызывает эту подпрограмму из своей подпрограммы DriverEntry .
IoReportRootDevice помечает устройство как устройство с корневым перечислением, и эта идентификация сохраняется при загрузке системы. Диспетчер PnP "обнаруживает" устройство в списке с корневым перечислением и настраивает его как устройство PnP: диспетчер PnP запрашивает сведения об устройстве, определяет соответствующие драйверы и вызывает их процедуры AddDevice и отправляет все соответствующие PnP IRP.
Система создает одну строку идентификатора оборудования для устройства в формате ROOT\Driver , где Driver — имя службы драйвера. Драйвер может предоставить дополнительные идентификаторы оборудования или совместимые идентификаторы, обрабатывая запрос IRP_MN_QUERY_ID .
Модуль записи драйверов должен предоставить INF-файл, соответствующий любому из указанных идентификаторов оборудования или совместимых идентификаторов. В INF-файле должен быть указан исходный драйвер с именем IoReportRootDevice в качестве драйвера для загрузки этих идентификаторов. Система использует эти сведения для перестроения стека драйверов для устройства, например при перезапуске. Вызывающие устройства IoReportRootDevice должны выполняться в среде IRQL = PASSIVE_LEVEL в контексте системного потока.
Драйверы должны использовать IoReportDetectedDevice для создания отчетов об аппаратных устройствах, которые используют ресурсы, но не могут быть обнаружены драйвером Шины PnP, а не IoReportRootDevice.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows 8 и более поздних версиях Windows. |
Целевая платформа | Универсальное |
Верхняя часть | ntddk.h (включая Ntddk.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (см. раздел "Примечания") |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по