cakor
驱动小牛
驱动小牛
  • 注册日期2003-03-18
  • 最后登录2009-06-11
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望22点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1766回复:13

为什么枚举完,有“!”,是不能用还是??

楼主#
更多 发布于:2003-06-02 17:44
为什么枚举完,有“!”,是不能用还是??

最新喜欢:

abei11abei11
flycat0101
驱动小牛
驱动小牛
  • 注册日期2002-06-24
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2003-06-02 17:54
枚举完成了,可是你的驱动没有正确安装
从你的图看来,你是一个专用的usb设备,那么你自己得写pc端得驱动了
我思,故我在
cakor
驱动小牛
驱动小牛
  • 注册日期2003-03-18
  • 最后登录2009-06-11
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望22点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-06-02 19:12
我的驱动是周立功公司的,我只是拿来改个名字.然后他就显示成那样子了!但是对D12的驱动不都是一样吗?
clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-06-03 09:37
呵呵,我的也是这样。是不是要写windows驱动?还有,在设置配置中,因该返回00 09 01 00 00 00 00 00来激活,但是我收到的是00 09 00 00 00 00 00 00,是否也是驱动的问题?
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-06-03 10:03
是驱动的问题,不过这个问题好解决,用softice调几下就好了,关键是你们得有driver的源代码,我估计问题不出在get_configuration函数上就是出现在build pipe的地方。
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-06-03 11:59
你再试试其他的驱动,也许有可以用的!
clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-06-03 12:36
那你有没有可以正常使用的驱动?发个给我吧:clementzhao@163.com
cakor
驱动小牛
驱动小牛
  • 注册日期2003-03-18
  • 最后登录2009-06-11
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望22点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-06-03 21:13
虽然我现在还有问题不知道怎么解决,还是感谢大家的回答?谢谢了饿
先给分!
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-06-04 02:31
我记得站上的帖子里有的!
clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-06-04 08:55
我是过好几个驱动,包括三星的。把数据都改成跟三星一样,结果能收到00 09 01 00...算不算枚举成功?但是后面跟着来得:55H,53H,42H,43H...是什么意思?是不是上位机还要处理别的东西?换回D12test.inf,在80 06 02...09 00后面紧跟的是clear_feature,并不是我期望的80 06 02...FF 00。为什么?
flycat0101
驱动小牛
驱动小牛
  • 注册日期2002-06-24
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
  • 社区居民
10楼#
发布于:2003-06-04 09:42
如果收到了00 09 01 00 00 00 00 00(设置configuration),那么你已经枚举成功,而后面的55H,53H,42H,43H是host向你的设备发出了CBW命令,这是mass storage设备(bulk only)命令,第一条命令是查询设备信息的,你要返回数据和状态(CSW)
我思,故我在
clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-06-04 11:48
既然samsung驱动枚举ok,为什么用d12test驱动还是有!号,数据还是00 09 00 00 00 00 00 00?是不是周立功那个驱动就做到这一步?
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-06-04 16:19
既然samsung驱动枚举ok,为什么用d12test驱动还是有!号,数据还是00 09 00 00 00 00 00 00?是不是周立功那个驱动就做到这一步?
 


那倒不是,只是它里面有几个函数太古老了,需要变换一下,我记得我在某一贴子里说了这个问题了,具体问题在:D12_SelectInterface函数里调用的USBD_CreateConfigurationReques和USBD_ParseConfigurationDescriptor。由于这两个函数比较老,所以无法在configuration里面搜索到interface和endpoint,下面是我修改过的该函数,当然前提是你必须正确获得了configration descriptor。  其实主要改编是将那两个函数改为以Ex结尾的另外两个函数,另外里面的interfaceList[1]是必需的,虽然没有使用。

大家参考一下吧

D12_SelectInterface(
    IN PDEVICE_OBJECT DeviceObject,
    IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
    PUSBD_INTERFACE_INFORMATION Interface
    )
{
    PDEVICE_EXTENSION deviceExtension;
    NTSTATUS ntStatus;
    PURB urb = NULL;
    ULONG i;
    UCHAR alternateSetting, interfaceNumber;
    PUSBD_INTERFACE_INFORMATION interfaceObject;
    USBD_INTERFACE_LIST_ENTRY interfaceList[2];

    D12_KdPrint ((\"D12TEST.SYS: enter D12_SelectInterface\\n\"));

deviceExtension = DeviceObject->DeviceExtension;
interfaceNumber = 0x00;
interfaceList[0].InterfaceDescriptor =
USBD_ParseConfigurationDescriptorEx(ConfigurationDescriptor,
    ConfigurationDescriptor,
-1,         // Interface - don\'t care
-1,         // Alternate Setting - don\'t care
-1,         // Class - don\'t care
-1,         // SubClass - don\'t care
-1);        // Protocol - don\'t care
ASSERT(interfaceList[0].InterfaceDescriptor != NULL);
//cf. USBD_ParseConfigurationDescriptorEx
//USBD_ParseConfigurationDescriptorEx searches a given configuration
//descriptor and returns a pointer to an interface that
//atches the given search criteria
    interfaceList[1].InterfaceDescriptor = NULL;
    interfaceList[1].Interface = NULL;

urb = USBD_CreateConfigurationRequestEx(ConfigurationDescriptor, &interfaceList[0]);
   if (!urb)
{
  D12_KdPrint ((\" USBD_CreateConfigurationRequestEx failed\\n\"));            
}
    interfaceObject = (PUSBD_INTERFACE_INFORMATION) (&(urb->UrbSelectConfiguration.Interface));

      for (i=0; i< interfaceList[0].InterfaceDescriptor->bNumEndpoints; i++)
 {
          // perform any pipe initialization here
          interfaceObject->Pipes.MaximumTransferSize = 64*1024-1;
//此处是为传输的最大数据量赋值的地方,如果你想一次传输超过64K,那么就在此处给出个更大的值即可。
       }
          
           ntStatus = D12_CallUSBD(DeviceObject, urb);
            deviceExtension->ConfigurationHandle =
                urb->UrbSelectConfiguration.ConfigurationHandle;

    if (NT_SUCCESS(ntStatus))
{
        // Save the configuration handle for this device
        deviceExtension->ConfigurationHandle =
            urb->UrbSelectConfiguration.ConfigurationHandle;

        deviceExtension->Interface = ExAllocatePool(NonPagedPool,
                                                    interfaceObject->Length);

        if (deviceExtension->Interface)
{
           //
            // save a copy of the interface information returned
            //
            RtlCopyMemory(deviceExtension->Interface, interfaceObject, interfaceObject->Length);

            D12_KdPrint ((\"D12TEST.SYS: ---------\\n\"));
        }
    }

if (urb) {
        ExFreePool(urb);
        urb = NULL;
    }


    D12_KdPrint ((\"D12TEST.SYS: exit D12_SelectInterface (%x)\\n\", ntStatus));

    return ntStatus;
}

clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-06-05 08:50
好的,我看看。谢谢!
游客

返回顶部