3

关于投票
Computer00Usb设备驱动程序源代码包

下载地址一:点击下载

下载地址二:点击下载

下载地址三:Computer00Usb设备驱动程序源代码包.rar

 

本压缩包是Computer00's USB设备的驱动源代码包。Computer00's USB设备
是圈圈在EDN USB学习板上实现的厂商自定义类设备。它具有4个端点:
中断输出端点1(最大包长16字节)、中断输入端点1(最大包长16字节)、
批量输出端点2(最大包长64字节)、中断输入端点2(最大包长64字节)。
安装本驱动程序的VID为8888,PID为0088,这些ID是圈圈作为私人学习
使用,请勿作为商业使用,否则后果自负。

    本驱动的GUID如下,应用程序可以通过GUID打开该设备。
{0xA2CBE209,0x7A8B,0x44B4,{0x94,0xE7,0xCD,0x45,0x4A,0x42,0x7F,0x11}}
对4个端点操作可以使用IoControl,IoControl代码分别如下:
读端点1:0x80002001,写端点1:0x80002006;
读端点2:0x80002009,写端点2:0x8000200e。
也可以使用ReadFile和WirteFile对端点2进行读写操作。
注意在使用读操作时,提供的缓冲区最好能够大于等于最大包长,否则
当设备返回的数据大于提供的缓冲区时,将导致设备数据无法返回,这
时需要停用设备然后重新再启用。所有操作有超时限制,超时时间为1s。
当USB设备在1s之内都不能接收数据或者返回数据,驱动程序将超时返回,
这时返回的实际传输字节数为0,应用程序可以通过它来确认是否读写成功。

    本驱动程序仅在Intel处理器、Windows XP环境下进行过测试,可能
存在着不兼容问题。

    本驱动程序的作者电脑圈圈保留所有版权,仅供学习使用,未经作者
许可,不得私自用于其它用途。

                                   Computer00 2008.03.14

系统分类: 软件开发
用户分类: WDM驱动开发
标签: Computer00Usb 设备驱动程序 源代码包
来源: 原创
发表评论 阅读全文(527) | 回复(9)

4

关于投票
Computer00Usb设备测试程序源代码包

Computer00Usb设备测试程序源代码包

下载地址1:点击下载

下载地址2:点击下载

下载地址3:Computer00Usb设备测试程序源代码包.rar

 

使用说明请看:

http://blog.ednchina.com/computer00/93305/message.aspx

http://group.ednchina.com/93/8516.aspx

http://blog.21ic.com/user1/2198/archives/2008/46452.html

系统分类: 软件开发
用户分类: WDM驱动开发
标签: Computer00Usb设备 测试程序 源代码包
来源: 原创
发表评论 阅读全文(525) | 回复(0)

4

关于投票
Computer00's USB设备的驱动程序

下载Computer00's USB设备的驱动:

下载地址1:rar

下载地址2:rar

下载地址3:Computer00USB驱动.rar

本驱动程序是Computer00's USB设备的驱动。Computer00's USB设备
是圈圈在EDN USB学习板上实现的厂商自定义类设备。它具有4个端点:
中断输出端点1(最大包长16字节)、中断输入端点1(最大包长16字节)、
批量输出端点2(最大包长64字节)、中断输入端点2(最大包长64字节)。
安装本驱动程序的VID为8888,PID为0088,这些ID是圈圈作为私人学习
使用,请勿作为商业使用,否则后果自负。

    本驱动的GUID如下,应用程序可以通过GUID打开该设备。
{0xA2CBE209,0x7A8B,0x44B4,{0x94,0xE7,0xCD,0x45,0x4A,0x42,0x7F,0x11}}
对4个端点操作可以使用IoControl,IoControl代码分别如下:
读端点1:0x80002001,写端点1:0x80002006;
读端点2:0x80002009,写端点2:0x8000200e。
也可以使用ReadFile和WirteFile对端点2进行读写操作。
注意在使用读操作时,提供的缓冲区最好能够大于等于最大包长,否则
当设备返回的数据大于提供的缓冲区时,将导致设备数据无法返回,这
时需要停用设备然后重新再启用。所有操作有超时限制,超时时间为1s。
当USB设备在1s之内都不能接收数据或者返回数据,驱动程序将超时返回,
这时返回的实际传输字节数为0,应用程序可以通过它来确认是否读写成功。

    本驱动程序仅在Intel处理器、Windows XP环境下进行过测试,可能
存在着不兼容问题。

    本驱动程序的作者电脑圈圈保留所有版权,仅供学习使用,未经作者
许可,不得私自用于其它用途。

                                   Computer00 2008.03.14

看看我的应用程序界面:

点击看大图

系统分类: 软件开发
用户分类: WDM驱动开发
标签: Computer00 自定义 USB 设备 驱动程序
来源: 原创
发表评论 阅读全文(543) | 回复(9)

4

关于投票
DS3.2开发USB驱动时SubmitUrb一个输入URB蓝屏问题的解决

在使用DS3.2开发USB PDIUSBD12的驱动程序时,使用DS的
向导自动生成驱动后,添加发送数据相关代码后,测试发
送数据成功。继续增加读数据相关代码,使用最简单的同步
调用,结果出现蓝屏……反复查看代码,不管是使用buffere
d模式还是direct模式,设置成异步调用并设置完成例程,
结果还是蓝屏依旧...在经过无数次的修改代码、蓝屏之后,
人都快崩溃了...看别人的驱动以及DS自带的例子中都是这样
做的呀,看来问题不在这里。找到代码中的设备构造函数
Computer00USBDevice::Computer00USBDevice,发现原来是
DS向导生成的代码SB了...

本来应该是
    // Initialize each Pipe object
    m_Endpoint1In.Initialize(m_Lower, 0x81, 16);   
    m_Endpoint1Out.Initialize(m_Lower, 1, 16);   
    m_Endpoint2In.Initialize(m_Lower, 0x82, 64);   
    m_Endpoint2Out.Initialize(m_Lower, 2, 64);   

而向导自动生成的代码在0x81和0x82前面都漏掉了0x,
变成十进制的了,我倒塌...

结果就是两个输出端点可以正常工作,而一旦对输入端点
操作时,就导致系统蓝屏了...

将代码改正过来,再测试,系统不再蓝屏,而且也可以
正常从设备读取到数据了。

另外,如果应用程序提供的缓冲区比实际返回的数据
长度少时,就会读不到数据,并且以后再使用足够长度
的缓冲区去读时也还是读不到。需要将设备停用后重新启用
才能重新读到数据。所以应用程序应该提供足够大的缓冲区
(例如端点的最大数据包长度)去读数据。

              Computer00 2008.03.11

系统分类: 软件开发
用户分类: WDM驱动开发
标签: 无标签
来源: 原创
发表评论 阅读全文(713) | 回复(6)
总共 , 当前 /