IOCTL_INTERNAL_USB_GET_PORT_STATUS I/O 请求查询 PDO 的状态。 IOCTL_INTERNAL_USB_GET_PORT_STATUS是内核模式 I/O 控制请求。 此请求面向 USB 集线器 PDO。 必须在 IRQL = PASSIVE_LEVEL 发送此 IOCTL。
2、主机发送Get_Port_Status(读端口状态)请求,以获取更多的设备信息。返回的消息告诉主机该设备是什么时候连接的。集线器检测设备是低速运行还是高速运行,并将此信息送给主机,这是对Get_Port_Status请求的响应。 3、主机发送Set_Port_Feature(写端口状态)请求给集线器,要求它复位端口,请求集线器来重新设置端口。集线器使...
2、主机发送Get_Port_Status(读端口状态)请求,以获取更多的设备信息。返回的消息告诉主机该设备是什么时候连接的。集线器检测设备是低速运行还是高速运行,并将此信息送给主机,这是对Get_Port_Status请求的响应。 3、主机发送Set_Port_Feature(写端口状态)请求给集线器,要求它复位端口,请求集线器来重新设置端口。集线器使...
Get_Port_Status等请求属于所有hub都要求支持的hub类标准请求,hub相关的标准我们暂时不研究,大家知道这一点就好。 4.主机检测所插入的设备是全速还是低速 hub通过检测USB总线空闲时的差分线的高低电压来判断所连接设备的速度类型,当host发来Get_Port_Status请求时,hub就可以将此设备的速度类型信息回复给host。USB 2.0...
The IOCTL_INTERNAL_USB_GET_PORT_STATUS I/O request queries the status of the PDO. IOCTL_INTERNAL_USB_GET_PORT_STATUS is a kernel-mode I/O control request. This request targets the USB hub PDO. This IOCTL must be sent at IRQL = PASSIVE_LEVEL.
IOCTL_INTERNAL_USB_GET_PORT_STATUS IOCTL_INTERNAL_USB_GET_PORT_STATUS I/O 请求查询 PDO 的状态。 IOCTL_INTERNAL_USB_GET_PORT_STATUS是内核模式 I/O 控制请求。 此请求面向 USB 中心 PDO。 必须在 IRQL = PASSIVE_LEVEL 发送此 IOCTL。 IOCTL_INTERNAL_USB_GET_ROOTHUB_PDO USB 中心驱动程序使用IOCTL_...
主机在接 收到该通知后, 会向集线器发出 GetPortStatus 请求以了解更多的信息, 该请求是集线器设备 类请求。 4、为确保本次连接的机械特性和电气特性都趋于稳定, 主机会至少等待 100ms 。这样 USB 设备在接收到任何请求前,其电源已经稳定工作来最少 100ms 。如果在这段时间内, 该设备检测不到 USB 总线活动,...
//Get_Port_Status:取得端口状态. //会取得port的改变值和状态值 ret = hub_port_status(hub, i, &portstatus, &portchange); if (ret < 0) continue; //如果对应端口没有在设备树上,且端口显示已经连接上 //将connect_change置为1 if (hub->activating && !hdev->children[i-1] && ...
// 在Root Hub中,首先看HCD中是否支持Root Hub Status Change,若不支持,则在此处等待m_hHubStatusChangeEvent。 // 然后遍历Hub上的每个Port,调用函数CHW::DidPortStatusChange检查Port状态是否改变。 // 若改变,调用函数GetStatus获取Port状态。 // 在External Hub中,首先调用函数GetStatusChangeBitmap等待直到Port...
USB_REQ_GET_STATUS, USB_DIR_IN | type, 0, target, status, sizeof(*status), USB_CTRL_GET_TIMEOUT); 接着:定义每一个port的电流 -> hub_hub_status(hub, &hubstatus, &hubchange); 这个请求是hub自己定义的(spec P425),将当前hub状态保存在hubstatus,已经改变的 ...