IRP_MN_QUERY_RESOURCE_REQUIREMENTS
Диспетчер PnP использует этот IRP для получения списка требований к ресурсам устройства.
Водители шины должны обрабатывать этот запрос для своих дочерних устройств, которым требуются аппаратные ресурсы. Драйверы фильтров шины могут обрабатывать этот запрос. Драйверы функций и фильтров не обрабатывают этот IRP.
Значение
0x0B
Основной код
При отправке
Диспетчер 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) |