IRP_MN_QUERY_DEVICE_TEXT
Диспетчер PnP использует этот IRP для получения описания устройства или сведений о местоположении.
Водители автобусов должны обработать этот запрос для своих дочерних устройств, если автобус поддерживает эти сведения. Драйверы функций и фильтров не обрабатывают этот IRP.
Значение
0x0C
Основной код
При отправке
При перечислении устройства диспетчер PnP отправляет две из этих irP: одну для запроса описания устройства, а другую — для запроса сведений о расположении.
Диспетчер PnP отправляет этот IRP на PASSIVE_LEVEL IRQL в произвольном контексте потока.
Входные параметры
Элемент Parameters.QueryDeviceText.DeviceTextType структуры IO_STACK_LOCATION является DEVICE_TEXT_TYPE значением, указывающим запрашиваемую строку. Возможные значения для DEVICE_TEXT_TYPE включают DeviceTextDescription и DeviceTextLocationInformation.
Parameters.QueryDeviceText.LocaleId — это идентификатор языка, указывающий языковой стандарт для запрошенного текста.
Выходные параметры
Возвращается в блоке состояния ввода-вывода.
Блок состояния ввода-вывода
Драйвер задает для Irp-IoStatus.Status> значение STATUS_SUCCESS или соответствующее состояние ошибки.
При успешном выполнении драйвер шины устанавливает Irp-IoStatus.Information> в указатель на выделенный драйвером блок памяти, содержащий буфер WCHAR с запрошенными сведениями. При возникновении ошибки драйвер шины устанавливает значение Irp-IoStatus.Information> равным нулю.
Операция
Водителям автобусов настоятельно рекомендуется возвращать описания устройств для своих дочерних устройств. Эта строка отображается во всплывающем окне Найдено новое оборудование , если для устройства не найдено совпадение с INF.
Водителям автобусов также рекомендуется возвращать LocationInformation для своих дочерних устройств, но эти сведения являются необязательными. Формат этой строки зависит от шины. Диспетчер устройств отображает эту строку на вкладке общие свойства устройства. Поставщики должны выбрать строку, которая передает полезную информацию пользователям и сотрудникам службы поддержки. Например, для PCI строка содержит шину, устройство и функцию. Для карточки PC строка содержит слот.
Если драйвер шины возвращает сведения в ответ на этот IRP, он выделяет строку Юникода, завершаемую NULL, из выстраивной памяти. Диспетчер PnP освобождает строку, когда она больше не нужна.
Если устройство не предоставляет описание или сведения о расположении, драйвер родительской шины устройства завершает IRP (IoCompleteRequest) без изменения Irp-IoStatus.Status> или Irp-IoStatus.Information>.
Драйверы функций и фильтров не обрабатывают этот IRP; они передают его следующему более низкому драйверу без изменений в Irp-IoStatus>.
Драйверы для автобусов, поддерживающие разные текстовые строки для разных языковых стандартов, должны иметь возможность обрабатывать запрос для языка, который явно не поддерживается устройством. В такой ситуации водитель автобуса должен вернуть ближайшее совпадение с языковым стандартом или откатить и вернуть соответствующую поддерживаемую строку языкового стандарта.
Общие правила обработки Plug and Play дополнительных irP см. в Plug and Play.
Отправка этого IRP
Зарезервировано для системного использования. Драйверы не должны отправлять этот IRP.
Требования
Заголовок |
Wdm.h (включая Wdm.h, Ntddk.h или Ntifs.h) |