mmh
mmh
驱动牛犊
驱动牛犊
  • 注册日期2001-06-01
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3599回复:18

大侠帮忙,一个很简单的问题可是我不知道

楼主#
更多 发布于:2001-06-19 09:25
有一USB外设(EPSON打印机),没有任何有关它的USB芯片的资料,不知能不能跟它通讯?我是不是应该知道它的USB协议?还是USB有统一的协议?
han
jeosph
驱动中牛
驱动中牛
  • 注册日期2001-04-19
  • 最后登录2006-08-08
  • 粉丝0
  • 关注0
  • 积分96分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-06-19 09:41
OF COURSE!
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-06-19 09:44
这要看你想干什么了.如果想打印,用一些API应该就可以了.如果想和硬件直接打交道,应该要了解driver.
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
mmh
mmh
驱动牛犊
驱动牛犊
  • 注册日期2001-06-01
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-06-19 09:48
OF COURSE ?
是不是不可以,应该有该打印机的USB芯片的相关资料。麻烦您说清楚点,THANKS!
han
mmh
mmh
驱动牛犊
驱动牛犊
  • 注册日期2001-06-01
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-06-19 10:10
Moderator,我是要让它打印,但我不用厂商提供的驱动程序,而是自己编写驱动程序,现在厂商有给相关的指令集,我之前作过串、并口的,我想USB口应该不一样吧,我试过用CREATEFILE打开USB口,好象不对呀。
han
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-06-19 12:55
usb是要写driver的,但你的应该是属于printer类的.
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
mmh
mmh
驱动牛犊
驱动牛犊
  • 注册日期2001-06-01
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2001-06-19 13:20
那我应该怎么样写通信程序以实现打印功能呢,是不是与串、并口差不多?刚接触这行不久,很菜。麻烦大侠多帮忙。
[mmh 编辑于 2001-06-19 13:23]
han
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2001-06-19 16:38
我没有写过printer driver,你看看DDK里面有没有例子.
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
mmh
mmh
驱动牛犊
驱动牛犊
  • 注册日期2001-06-01
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2001-06-19 17:33
PRINTER DRIVER我之前写过,但之前是用并口通信,而现在要用USB口,不知道该如何访问USB口,我想访问USB设备(USB口)的方法应该都一样呀,哪位能告知如何访问USB口,不甚感激!
han
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2001-06-20 08:25
访问USB设备要写driver.但每个usb设备都可以归属于某一类设备,usb printer可能是printer类的.
我想你可能需要写一个usb client driver,把你的usb printer加载到printer stack里面.
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
peng-416
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2001-06-20 08:38
你分成两个部分:
一个与USB通讯,
一个打印机驱动程序.
顺便问一下你以前写的打印机驱动程序是基于minidriver,还是别的(按DDK写的?)在这方面我想与你问一些问题.
mmh
mmh
驱动牛犊
驱动牛犊
  • 注册日期2001-06-01
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2001-06-20 08:44
非常感谢rayyang2000,但是如何写一个usb client driver,把我的usb printer加载到printer stack里面呢,望共享一个例子,非常非常非常感谢!
han
mmh
mmh
驱动牛犊
驱动牛犊
  • 注册日期2001-06-01
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2001-06-20 09:09
peng-416,其实我才写过一个PRINTER DRIVER,不是按DDK写的,其实我很菜的,不过我知道的会尽力回答你的。
我现在急得想知道怎么跟USB设备通信,不知道你有没有这方面的例子?
MY EMAIL:mmh_han@163.com
han
peng-416
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2001-06-20 14:44
在WritePrinter时你将它写到USB设备上,就可以了.你是作为它的一个客户.
wentao
驱动牛犊
驱动牛犊
  • 注册日期2001-05-25
  • 最后登录2003-12-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2001-06-20 15:01
对于USB的设备应该写一个Filter驱动程序,因为对于USB设备而言有比较标准的驱动,而这些Driver是系统的一部分sys,也就是说在它的下面还有驱动程序,如USBD.sys等.
wentao
mmh
mmh
驱动牛犊
驱动牛犊
  • 注册日期2001-06-01
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2001-06-20 15:07
但是问题的关键是我该如何获得USB设备的端口呢?
han
Buddha
驱动老牛
驱动老牛
  • 注册日期2001-04-29
  • 最后登录2013-05-18
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望17点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2001-06-20 17:15
usb的驱动和串并口的驱动完全不同的
串并口的驱动都是直接对地址口发送ESC指令(你应该是在dos或linux下做的,我想)
而usb的只能写一个miniport的,不能直接对硬件操作的
<table style="filter: glow(color=sky blue, strength=10)"> <font color=white> 猫生病了, 老鼠大声朗诵诗集, 并修剪盆花. 猫生病了, 老鼠慢慢刷牙洗脸, 并打扫房间. 猫生病了, 老鼠倚在窗边欣赏夜色, 并对流星许愿. 猫生病了, 老鼠也病了, 它说:"我还是习惯那种时时紧张, 处处小心, 夜夜逃亡的生活." 午夜, 我听到老鼠在叹息, 且不再读诗了. </font></table>
mmh
mmh
驱动牛犊
驱动牛犊
  • 注册日期2001-06-01
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2001-06-22 09:03
我用DRIVERSTUDIO生成一驱动程序,其中// OpenByIntf.cpp - open device by device interface

源码如下:
HANDLE OpenByInterface(
GUID* pClassGuid, // points to the GUID that identifies the interface class
DWORD instance, // specifies which instance of the enumerated devices to open
PDWORD pError // address of variable to receive error status
)
{
HANDLE hDev;
CDeviceInterfaceClass DevClass(pClassGuid, pError);

if (*pError != ERROR_SUCCESS)
return INVALID_HANDLE_VALUE;

CDeviceInterface DevInterface(&DevClass, instance, pError);
//
if (*pError != ERROR_SUCCESS)
return INVALID_HANDLE_VALUE;

hDev = CreateFile(
DevInterface.DevicePath(),
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL
);
if (hDev == INVALID_HANDLE_VALUE)
*pError = GetLastError();

return hDev;
}
不知道我该修改哪些地方,其中DevInterface.DevicePath(),
是怎么取得的?请大侠指教。

han
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2001-06-22 10:57
既然用了DriverStudio,请先看看它的帮助。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
游客

返回顶部