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

另请参阅