PUSB_BUSIFFN_QUERY_BUS_INFORMATION回调函数 (usbbusif.h)
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请求在 USB_BUS_INTERFACE_USBDI_V0 结构的 BusContext 成员中返回的句柄。
[out, optional] unnamedParam2
指定输出数据的长度。
[in, out] unnamedParam3
指向接收请求的总线信息的缓冲区的指针。
[out] unnamedParam4
输入时, 由 BusInformationBuffer 指定的缓冲区的长度。 输出时,输出数据的长度。
[in] unnamedParam5
指定要返回的信息级别。 如果 Level 为 0,则函数返回总带宽和消耗的总带宽(以位/秒为单位)。 如果 Level 为 1,则函数在 Unicode 中返回控制器的符号名称,以及总带宽和消耗的总带宽。
返回值
QueryBusInformation 返回以下值之一:
返回代码 | 说明 |
---|---|
STATUS_SUCCESS |
已成功完成调用。 |
STATUS_BUFFER_TOO_SMALL |
缓冲区太小。 此错误代码在两种情况下返回: 每当 Level == 0 时,如果 BusInformationBuffer 指向的缓冲区大小小于 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 |