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


IRP_MN_QUERY_RESOURCE_REQUIREMENTS

Диспетчер PnP использует этот IRP для получения списка требований к ресурсам устройства.

Водители шины должны обрабатывать этот запрос для своих дочерних устройств, которым требуются аппаратные ресурсы. Драйверы фильтров шины могут обрабатывать этот запрос. Драйверы функций и фильтров не обрабатывают этот IRP.

Значение

0x0B

Основной код

IRP_MJ_PNP

При отправке

Диспетчер PnP отправляет это IRP при перечислении устройства перед выделением ресурсов устройству и когда драйвер сообщает об изменении требований к ресурсам устройства.

Диспетчер PnP отправляет этот IRP на PASSIVE_LEVEL IRQL в произвольном контексте потока.

Входные параметры

Нет

Выходные параметры

Возвращается в блоке состояния ввода-вывода.

Блок состояния ввода-вывода

Драйвер, обрабатывающий этот IRP, присваивает Irp-IoStatus.Status> значение STATUS_SUCCESS или соответствующее состояние ошибки.

При успешном выполнении драйвер задает Irp-IoStatus.Information> указатель на IO_RESOURCE_REQUIREMENTS_LIST, содержащий запрошенные сведения. При возникновении ошибки драйвер устанавливает значение Irp-IoStatus.Information> равным нулю.

Операция

Если драйвер автобуса возвращает список требований к ресурсам в ответ на этот IRP, он выделяет IO_RESOURCE_REQUIREMENTS_LIST из страничной памяти. Диспетчер PnP освобождает буфер, когда он больше не нужен.

Если устройство не требует аппаратных ресурсов, драйвер шины устройства завершает IRP (IoCompleteRequest) без изменения Irp-IoStatus.Status> или Irp-IoStatus.Information>.

Если драйвер фильтра шины обрабатывает это IRP, он изменяет список требований к ресурсам, созданный водителем автобуса. Драйвер фильтра шины изменяет список на пути IRP для резервного копирования стека устройств. Драйвер фильтра шины должен сохранять порядок ресурсов в списке требований к ресурсам и не должен изменять теги ресурсов, которые он не обрабатывает. Если драйвер фильтра шины изменяет размер списка требований к ресурсам, драйвер должен выделить новую структуру из страничной памяти и освободить предыдущую структуру. Если драйвер фильтра шины добавляет новое требование к ресурсам в список и ресурс назначается устройству, драйвер должен отфильтровать новый ресурс из IRP_MN_START_DEVICE IRP, чтобы он не передавался водителю автобуса.

Драйверы фильтров функций и нешины не обрабатывают этот IRP; они передают его следующему более низкому драйверу без изменений в Irp-IoStatus>.

Общие правила обработки Plug and Play дополнительных irP см. в Plug and Play.

Отправка этого IRP

Зарезервировано для системного использования. Драйверы не должны отправлять этот IRP.

Требования

Заголовок

Wdm.h (включая Wdm.h, Ntddk.h или Ntifs.h)

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

IO_RESOURCE_REQUIREMENTS_LIST