阅读:910回复:0
帮忙看看
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域有何用意? 再者这里最多打开一个管道(只标记而已),若打开多个管道,各位有何高见?? |
|