IRP_MN_QUERY_DEVICE_TEXT

PnP 管理器使用此 IRP 获取设备的说明或位置信息。

如果总线支持此信息,则总线驱动程序必须为其子设备处理此请求。 函数和筛选器驱动程序不处理此 IRP。

0x0C

主要代码

IRP_MJ_PNP

发送时间

枚举设备时,PnP 管理器会发送其中两个 IRP:一个用于查询设备说明,一个用于查询位置信息。

PnP 管理器在任意线程上下文中的 IRQL PASSIVE_LEVEL发送此 IRP。

输入参数

IO_STACK_LOCATION 结构的 Parameters.QueryDeviceText.DeviceTextType 成员是指定所请求的字符串的DEVICE_TEXT_TYPE值。 DEVICE_TEXT_TYPE的可能值包括 DeviceTextDescriptionDeviceTextLocationInformation

Parameters.QueryDeviceText.LocaleId 是指定所请求文本的区域设置的 LCID。

输出参数

在 I/O 状态块中返回。

I/O 状态块

驱动程序将 Irp-IoStatus.Status> 设置为STATUS_SUCCESS或适当的错误状态。

成功后,总线驱动程序会将 Irp-IoStatus.Information> 设置为指向驱动程序分配的内存块的指针,该内存块包含具有所请求信息的 WCHAR 缓冲区。 出现错误时,总线驱动程序将 Irp-IoStatus.Information> 设置为零。

Operation

强烈建议总线驱动程序为其子设备返回设备说明。 如果未找到设备的 INF 匹配项,则会在“ 找到新硬件 ”弹出窗口中显示此字符串。

此外,建议巴士司机为其子设备返回 LocationInformation ,但此信息是可选的。 此字符串的格式取决于总线。 设备管理器在设备的“常规属性”选项卡中显示此字符串。 供应商应选择向用户和支持人员传达有用信息的字符串。 例如,对于 PCI,字符串包含总线、设备和函数。 对于电脑卡,字符串包含插槽。

如果总线驱动程序返回信息以响应此 IRP,它将从分页内存中分配以 NULL 结尾的 Unicode 字符串。 PnP 管理器在不再需要字符串时释放该字符串。

如果设备未提供说明或位置信息,则设备的父总线驱动程序完成 IRP (IoCompleteRequest) 而不修改 Irp-IoStatus.Status>Irp-IoStatus.Information>

函数和筛选器驱动程序不处理此 IRP;它们将其传递给下一个较低级别的驱动程序,且不更改 Irp-IoStatus>

支持不同区域设置不同文本字符串的总线驱动程序应能够处理设备未显式支持的语言的请求。 在这种情况下,总线驱动程序应返回与区域设置最接近的匹配项,或者应回退并返回一些适当的受支持区域设置字符串。

有关处理即插即用次要 IRP 的一般规则,请参阅即插即用。

发送此 IRP

预留给系统使用。 驱动程序不得发送此 IRP。

要求

标头

Wdm.h(包括 Wdm.h、Ntddk.h 或 Ntifs.h)