类驱动程序发送此请求以获取设备上函数的整个 USB 接口描述符集。
注意 不要使用此请求检索整个设备的接口描述符集。
主要代码
IRP_MJ_INTERNAL_DEVICE_CONTROL
输入缓冲区
指向包含 USBFN_INTERFACE_INFO 结构的缓冲区的指针。
输入缓冲区长度
输入缓冲区的长度必须至少 sizeof(USBFN_INTERFACE_INFO)
。
输出缓冲区
指向包含 USBFN_INTERFACE_INFO 结构的缓冲区的指针。 USB 函数类扩展(UFX)使用整个接口描述符集(包括其终结点描述符)填充结构。
输出缓冲区长度
输出缓冲区的长度必须至少 sizeof(USBFN_INTERFACE_INFO)
。
状态块
如果请求成功,USB 函数类扩展 (UFX) 将返回STATUS_SUCCESS,或NT_SUCCESS(status) 等于 TRUE 的另一个状态值。 否则,它将返回一个状态值,NT_SUCCESS(status) 等于 FALSE。
言论
发送 IOCTL_INTERNAL_USBFN_ACTIVATE_USB_BUS 请求后,必须发送此请求。
整个接口描述符的长度是可变的。 类驱动程序可能需要发送此 IOCTL 请求两次才能获取整个描述符集。
如果整个描述符集的长度大于指定的输出缓冲区长度,则 UFX 会将 USBFN_INTERFACE_INFO大小 成员设置为实际缓冲区长度,并失败请求并STATUS_BUFFER_TOO_SMALL。 然后,驱动程序必须分配由 大小 指定的输出缓冲区并重新发送请求。
要求
要求 | 价值 |
---|---|
标头 | usbfnioctl.h |