zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1390回复:8

请教如何实现控制传输!!!!!!!!!!!

楼主#
更多 发布于:2003-10-16 09:58
如果我要通过ep0给外设传送指令数据(0x80),该如何实现呢?

最新喜欢:

abei11abei11
zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-10-16 11:02
看来还是要等斑竹来解决问题了,难道你们做的项目不用ep0传输命令吗?
lishilong
驱动牛犊
驱动牛犊
  • 注册日期2003-10-11
  • 最后登录2006-08-10
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-10-16 11:23
你是做usb boot吗?能不能说详细点?   [/我是菜鸟]
zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-10-16 14:35
我做的是USB采集,需要给外设发送指令,因此用到EP0
qliu169
驱动牛犊
驱动牛犊
  • 注册日期2003-08-20
  • 最后登录2004-09-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-10-16 15:05
端口0发送vendor命令如下,driverstudio程序:

NTSTATUS Mp3testADevice::MP3TESTA_IOCTL_800_Handler(KIrp I)
{
NTSTATUS status = STATUS_SUCCESS;
//#######################
// int iTest;
UCHAR cBufferA;
UCHAR cBufferB;
UCHAR *pBuffer;

pBuffer=(PUCHAR)(I.IoctlBuffer());

// cBuffer=*(PUCHAR)(I.IoctlBuffer());

cBufferA=*pBuffer;
pBuffer++;
cBufferB=*pBuffer;

ULONG dwInputBufferSize = I.IoctlInputBufferSize();
ULONG dwOutputBufferSize = I.IoctlOutputBufferSize();

//########################

t << \"Entering Mp3testADevice::MP3TESTA_IOCTL_800_Handler, \" << I << EOL;

//###########################

t << \"xxxxx:MP3TESTA_IOCTL_800_Handler, the receive data A: \" << cBufferA << EOL;
t << \"xxxxx:MP3TESTA_IOCTL_800_Handler, the receive data B: \" << cBufferB << EOL;

t << \"xxxxx:MP3TESTA_IOCTL_800_Handler, the receive data length \" << dwInputBufferSize << EOL;
t << \"xxxxx:MP3TESTA_IOCTL_800_Handler, the need to send data length \" << dwOutputBufferSize << EOL;

//###########################

// TODO: Verify that the input parameters are correct
// If not, return STATUS_INVALID_PARAMETER

// TODO: Handle the the MP3TESTA_IOCTL_800 request, or
// defer the processing of the IRP (i.e. by queuing) and set
// status to STATUS_PENDING.

// TODO: Assuming that the request was handled here. Set I.Information
// to indicate how much data to copy back to the user.

//###########################

PURB pUrb;

UCHAR buffer[8];
memset(buffer,0,8);

buffer[0]=cBufferA;
buffer[1]=cBufferB;
buffer[2]=3;
buffer[3]=4;
buffer[4]=5;
buffer[5]=6;
buffer[6]=7;
buffer[7]=8;
/*
pUrb=m_Lower.BuildVendorRequest(
buffer,
8,
0,
1,
0xabcd,
FALSE,
FALSE,
NULL,
0,
URB_FUNCTION_VENDOR_ENDPOINT
);
*/

//the command of Bulk-Only Mass Storage Reset
pUrb=m_Lower.BuildClassRequest(
NULL,
0,
0,
255,
0,
FALSE,
FALSE,
NULL,
0,
URB_FUNCTION_CLASS_INTERFACE,
NULL
);

/*
//Get Max LUN
pUrb=m_Lower.BuildClassRequest(
buffer,
1,
0,
254,
0,
TRUE,
FALSE,
NULL,
0,
URB_FUNCTION_CLASS_INTERFACE,
NULL
);
*/

if (pUrb==NULL)
{
status=STATUS_INSUFFICIENT_RESOURCES;

t << \"xxxxx:MP3TESTA_IOCTL_800_Handler, insufficient resources \" << EOL;

}
else
{
//submit the URB to USBD
status=m_Lower.SubmitUrb(pUrb);

t << \"xxxxx:MP3TESTA_IOCTL_800_Handler, submit the URB and the status is \" << status << EOL;
t << \"xxxxx:MP3TESTA_IOCTL_800_Handler, the max LUN is \" << buffer[0] << EOL;

delete pUrb;
}

//###########################


I.Information() = 0;

return status;


}


千里之行始于足下。
zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-10-16 16:13
谢谢,其实我说的主要是固件侧该如何动作。
wdy9927
驱动老牛
驱动老牛
  • 注册日期2003-08-04
  • 最后登录2017-02-04
  • 粉丝0
  • 关注0
  • 积分89分
  • 威望143点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2003-10-16 17:25
从端点0out来了个数据包,判断数据包是不是setup包,是,去执行setup包的函数。
不是,判断有没有数据,有读进来,没有返回ack。

嘿嘿,好象是,不太记得了。
 :D
zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-10-16 17:57
有这样的例子吗?通过ep0写一个值给外设的例子
zyz1974
驱动小牛
驱动小牛
  • 注册日期2002-11-06
  • 最后登录2005-06-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-10-18 08:56
斑竹来看看我的问题吧,我这个问题一直不知道如何解决啊,我提出来几天了,但是一直没有解决,希望提供帮助
游客

返回顶部