QueryBusInformation 例程获取有关总线的信息。
语法
typedef NTSTATUS
(USB_BUSIFFN *PUSB_BUSIFFN_QUERY_BUS_INFORMATION) (
IN PVOID,
IN ULONG,
IN OUT PVOID,
IN OUT PULONG,
OUT PULONG
);
参数
[in] unnamedParam1
IRP_MN_QUERY_INTERFACE请求在 BusContext 成员 USB_BUS_INTERFACE_USBDI_V0 结构中返回的句柄。
[out, optional] unnamedParam2
指定输出数据的长度。
[in, out] unnamedParam3
指向接收请求的总线信息的缓冲区的指针。
[out] unnamedParam4
在输入时,BusInformationBuffer 指定的缓冲区的长度。 在输出中,输出数据的长度。
[in] unnamedParam5
指定要返回的信息级别。 如果 级别 为 0,则函数将返回总带宽和每秒消耗的总带宽(以位为单位)。 如果 级别 为 1,则除总带宽和总消耗带宽外,函数还会在 Unicode 中返回控制器的符号名称。
返回值
QueryBusInformation 返回以下值之一:
返回代码 | 描述 |
---|---|
STATUS_SUCCESS |
调用成功完成。 |
STATUS_BUFFER_TOO_SMALL |
缓冲区太小。 此错误代码在两种情况下返回: 每当 级别 == 0 时,如果 BusInformationBuff er 指向的缓冲区的大小小于 USB_BUS_INFORMATION_LEVEL_0 结构的大小,则返回此错误代码。 每当 Level == 1 时,如果 BusInformationBuffer 指向的缓冲区的大小 小于 USB_BUS_INFORMATION_LEVEL_1 结构的大小,则返回此错误代码。 |
言论
此例程返回的确切信息取决于 Level 参数的值。 此例程替换 usbd.sys提供的 USBD_QueryBusInformation 库函数。
要求
要求 | 价值 |
---|---|
目标平台 | 桌面 |
标头 | usbbusif.h (包括 Usbbusif.h) |
IRQL | < = DISPATCH_LEVEL |