巴乔
驱动牛犊
驱动牛犊
  • 注册日期2003-05-10
  • 最后登录2003-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1332回复:4

如果通过用户请求来设置USB设备的状态,固件应该做那些工作呀!

楼主#
更多 发布于:2003-05-18 14:29
比如:
一个端点处于halted状态了,device driver 来清除,还是usb bus driver 自己清除的呢?如果发IOCTL_INTERNAL_USB_RESET_PORT复位端口,是否可行,固件需要做什么特别的工作吗?


如果想清出stall状态,是device driver 来清除,还是usb bus driver 自己清除的呢?如果是device driver来清出,需要发什么IOCTL呀?固件需要做什么特别的工作吗?
巴乔
驱动牛犊
驱动牛犊
  • 注册日期2003-05-10
  • 最后登录2003-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-18 14:33
在DS做的驱动中,可以用GetStatus获得设备、接口和端点的状态,可是在应用程序怎么把得到的信息带回来呢,就是DeviceIoControl怎么才能把状态带回来呀!请指点,谢谢
巴乔
驱动牛犊
驱动牛犊
  • 注册日期2003-05-10
  • 最后登录2003-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-05-18 22:22
DS中的代码
case IOCTL_TEST_STATUS:
{
USHORT DeviceStatus;
USHORT InterfaceStatus;
USHORT PipeStatus;

m_Usb.GetStatus(&DeviceStatus);
m_Interface.GetStatus(&InterfaceStatus);
m_Pipe.GetStatus(&PipeStatus);

((USHORT*)I.IoctlBuffer())[0] = DeviceStatus;
((USHORT*)I.IoctlBuffer())[1] = InterfaceStatus;
((USHORT*)I.IoctlBuffer())[2] = PipeStatus;

I.Information() = 3*sizeof USHORT;
status = STATUS_SUCCESS;
break;
}

可以获得各种状态,可是怎么用DeviceIoControl带回来呢!
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-05-19 12:08
关注!
巴乔
驱动牛犊
驱动牛犊
  • 注册日期2003-05-10
  • 最后登录2003-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-05-20 08:00
请问各位大虾,在DS下用
m_Usb.GetStatus(&DeviceStatus);
m_Interface.GetStatus(&InterfaceStatus);
m_Pipe.GetStatus(&PipeStatus);
获得设备、接口和管道的状态信息,对应的返回值在哪里有定义啊?
偶查了帮助,只看明白了获得管道信息时,如果返回值最低位的值是1表示管道stalled了 ,那别的对应的信息再那里呀!
游客

返回顶部