hongbo
驱动牛犊
驱动牛犊
  • 注册日期2001-06-27
  • 最后登录2009-02-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2040回复:7

怎样在WDM下开发两个相同的设备?

楼主#
更多 发布于:2001-09-11 09:22
我要写一个USB的驱动程序,要求支持多个USB设备,怎样下手呢?怎样实现对这两个设备操作时的切换?请求各位大侠帮帮忙!!感激不尽!!!
前进是我的唯一追求!
hongbo
驱动牛犊
驱动牛犊
  • 注册日期2001-06-27
  • 最后登录2009-02-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-09-24 09:23
大家伙帮帮忙,给指一条路吧!
前进是我的唯一追求!
hongbo
驱动牛犊
驱动牛犊
  • 注册日期2001-06-27
  • 最后登录2009-02-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-09-19 11:35
程序中的AddDevice是在每次有新设备加入时自动调用的,而且也创建了多个设备,这是我的程序源码:
NTSTATUS UsbMiniDriver::AddDevice(PDEVICE_OBJECT Pdo)
{
Tracer << "Into AddDevice\n";

    UsbMiniDevice* pDevice =
        new (NonPagedPool) UsbMiniDevice(Pdo, m_Unit);

    if (pDevice)
    {
        NTSTATUS status = pDevice->ConstructorStatus();

        if ( !NT_SUCCESS(status) )
          {
              Tracer << "Error "<< (ULONG)m_Unit << "\n";
            delete pDevice;
          }
        else
            m_Unit++;
          return status;
    }
    else
    {
      Tracer << "Error creating device UsbMini"<< (ULONG)m_Unit << "\n";
        return STATUS_INSUFFICIENT_RESOURCES;
    }
}

我开发的项目是USB的读卡器装置,现在需要驱动支持多个读卡器在同一台PC上,遇到的问题是PC启动后,当前IRP栈中已压入一判断卡插拔的IRP,使用多个读卡器后,IRP栈中压入的始终为最后一个读卡器的IRP,这时插拔其他读卡器中的卡片,驱动就没有执行,问我怎样才能在多个读卡器中任意插拔卡都使驱动工作呢?有对此熟悉的帮帮忙吧!这个问题快急死我了!
前进是我的唯一追求!
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-09-13 09:32
在AddDevice的时候,create 2个不同的devices。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
hongbo
驱动牛犊
驱动牛犊
  • 注册日期2001-06-27
  • 最后登录2009-02-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-09-12 09:06
有谁能帮我发一些这样的资料给我,先谢了!!
另外,支持多个USB设备和应用程序有没有关系,在驱动程序里的AddDevice中已经有了unit++了,下一步怎样处理,怎样在两个设备之间切换呢?
前进是我的唯一追求!
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-09-11 15:54
我猜你用的不是cypress的片子(因为它的驱动本身就是你想要的),如果你能找到就好了,或者请这里的大虾门发一个给你,不好意思,我的确发不了。
hongbo
驱动牛犊
驱动牛犊
  • 注册日期2001-06-27
  • 最后登录2009-02-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2001-09-11 13:56
[QUOTE]原本由 sunkai 发表
[B]能先写只支持一个设备的驱动程序吗? [/B][/QUOTE]

可以,现在是想在支持一个的基础上增加支持多个,请执教!
前进是我的唯一追求!
sunkai
驱动中牛
驱动中牛
  • 注册日期2002-12-31
  • 最后登录
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2001-09-11 11:06
能先写只支持一个设备的驱动程序吗?
游客

返回顶部