neworcom
驱动牛犊
驱动牛犊
  • 注册日期2004-06-14
  • 最后登录2009-08-26
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望6点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:910回复:0

帮忙看看

楼主#
更多 发布于:2004-06-29 16:57
DDK\BulkUSB例子有这样一段代码打开USB管道:
...
for (i=0; i<interface->NumberOfPipes; i++)
{
  PipeInfo =  &interface->Pipes; //

  if ( ourPipeInfo == &deviceExtension->PipeInfo )
  {
    //
    // found a match
    //
    BULKUSB_KdPrint( DBGLVL_DEFAULT,("open pipe %d\n", i));
    fileObject->FsContext = PipeInfo;// 注意!!
    ourPipeInfo->fPipeOpened = TRUE; // set flag for opened
    ntStatus = STATUS_SUCCESS;

    deviceExtension->OpenPipeCount++;

    // try to power up device if its not in D0
    actStat = BulkUsb_SelfSuspendOrActivate( DeviceObject, FALSE );
    break;
   }
 }
...
这里PipeInfo是PUSBD_PIPE_INFORMATION类型,fileObject是PFILE_OBJECT类型,把PipeInfo放在fileObject的FsContext域有何用意?
再者这里最多打开一个管道(只标记而已),若打开多个管道,各位有何高见??
游客

返回顶部