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


Функция 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 (см. раздел "Примечания")

См. также раздел

AddDevice

DriverEntry

IRP_MN_QUERY_DEVICE_RELATIONS

IRP_MN_QUERY_ID

IRP_MN_START_DEVICE

IoReportDetectedDevice

IoReportResourceForDetection