首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

驱动程序中怎么实现读写设备的超时机制

2012-03-22 
驱动程序中如何实现读写设备的超时机制?在驱动程序中去读写设备时,如果超过一个设置的时间就立即返回,这个

驱动程序中如何实现读写设备的超时机制?
在驱动程序中去读写设备时,如果超过一个设置的时间就立即返回,这个具体如何实现?以下是一个USB驱动示例:
PURB pUrb = pipe->BuildBulkTransfer(//构造一个批量传输URB
M,
nBufferLength,
static_cast<BOOLEAN>( USB_ENDPOINT_DIRECTION_IN(pipe->EndpointAddress()) ),
NULL,
TRUE
);

if (pUrb) {
status = pipe->SubmitUrb(pUrb);//把URB向下传输,我希望当超过一个时间时这个函数能立即返回,不知如何实现?
else {
status = STATUS_INSUFFICIENT_RESOURCES;
}
if( STATUS_SUCCESS == status )
{
I.Information() = pUrb->UrbBulkOrInterruptTransfer.TransferBufferLength;
}


如上面的pipe->SubmitUrb(pUrb),这个是开始对实际设备进行读写操作,但是怎样能够让它有一个时间限制,当超过一个时间就能立即返回,不要在那里死死等待,以免上位机程序以为驱动这边死机了一样,请高手指点,万分感谢!

[解决办法]
SubmitUrb 可设置超时值,请看帮助文档。

热点排行