Leaf123
驱动牛犊
驱动牛犊
  • 注册日期2005-06-30
  • 最后登录2007-07-24
  • 粉丝0
  • 关注0
  • 积分52分
  • 威望10点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1664回复:4

一个绝对新手的问题,为什么要写驱动,什么时候需要写驱动?

楼主#
更多 发布于:2005-07-01 16:25
  我以前一直是在用vc写应用层软件。
最近公司决定开发一个设备,这个设备是通过usb口和pc通讯的。
我要做的就是写pc上的数据采集工具。

但是我不知道怎么获得和usb口的接口,
我去网上查,看很多人说要写驱动,我看了很多文章,大体知道了这里的驱动就是应用程序和usb口的接口吧,就象我们在win98上用u盘需要装的那个驱动一样吧。

但是我不知道驱动应该写什么?
而且我也不知道到底是否需要写驱动?
到底什么时候才需要写驱动呢?

而且好象usb通讯设备是分类的,有hid类的,普通的u盘是什么类型的呢?
我用:
       CString m_strLog;
       GUID guidHID;
       HidD_GetHidGuid(&guidHID);
       AfxMessageBox("HID类的GUID标识为\r\n");

       CString strShow;
       strShow.Format("%08x-%04x-%04x-%02x-%02x-%02x-%02x-%02x-%02x-%02x-%02x\r\n",
              guidHID.Data1,guidHID.Data2,guidHID.Data3,guidHID.Data4[0],
              guidHID.Data4[1],guidHID.Data4[2],guidHID.Data4[3],guidHID.Data4[4],
              guidHID.Data4[5],guidHID.Data4[6],guidHID.Data4[7]);

       m_strLog += strShow;
       msgbox(m_strLog);

       // 准备查找符合HID规范的USB设备
       HDEVINFO hDevInfo = SetupDiGetClassDevs(&guidHID,NULL,0,
              DIGCF_PRESENT | DIGCF_DEVICEINTERFACE);
      
       UINT nIndex = 0;
       m_strLog += _T("正在查找可用的USB设备...\r\n");
       msgbox(m_strLog);

       // 查找USB设备接口
       SP_DEVICE_INTERFACE_DATA strtInterfaceData;
       BOOL bSuccess = SetupDiEnumDeviceInterfaces(hDevInfo,NULL,&guidHID,0,
              &strtInterfaceData);
       if (!bSuccess)
       {
              msgbox(_T("抱歉,未找到可用的USB设备"));
              SetupDiDestroyDeviceInfoList(hDevInfo);
              return;
       }

明明我机器上是插有u盘的,但是每次执行都是("抱歉,未找到可用的USB设备",这是怎么回师啊?

哎,问了一大堆白痴的问题,都想自杀去了,有哪位仁兄同情我下,告诉我上面的答案呢?
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-07-01 23:09
u盘的bDeviceClass 是USB_DEVICE_CLASS_STORAGE
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2005-07-01 20:25
建议找一本wdm 驱动开发的书,系统的看一下,有了一些基本概念后,再来提具体问题
Leaf123
驱动牛犊
驱动牛犊
  • 注册日期2005-06-30
  • 最后登录2007-07-24
  • 粉丝0
  • 关注0
  • 积分52分
  • 威望10点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-07-01 16:34
楼上的仁兄能说明白点吗?
我现在基本上就是个白痴,什么都不懂,你这样说我什么也听不懂啊。
另外问下u盘是什么类型的设备呢?
zhaock
驱动太牛
驱动太牛
  • 注册日期2002-01-26
  • 最后登录2018-06-02
  • 粉丝3
  • 关注2
  • 积分73328分
  • 威望362317点
  • 贡献值1点
  • 好评度226点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2005-07-01 16:30
1。你需要写一个usb client driver.
2。u盘不是hid设备。
游客

返回顶部