阅读:1310回复:1
请教bulkusb的问题。
不好意思,请问一个问题,我也用DDK的bulkusb改写了个驱动,使用一个USB存储器做为测试用,该设备定义了一个接口,两个端点是块传输类型的。发现驱动到是安上去了,但是再测试程序中调用CreateFile( FILENAME,
GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);后,驱动里响应函数 NTSTATUS BulkUsb_Create( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ) { NTSTATUS ntStatus = STATUS_SUCCESS; PFILE_OBJECT fileObject; PIO_STACK_LOCATION irpStack; PDEVICE_EXTENSION deviceExtension; ULONG i, ix; NTSTATUS actStat; PUSBD_INTERFACE_INFORMATION interface; PUSBD_PIPE_INFORMATION PipeInfo; PBULKUSB_PIPEINFO ourPipeInfo = NULL; deviceExtension = DeviceObject->DeviceExtension; interface = deviceExtension->UsbInterface; BULKUSB_KdPrint( DBGLVL_DEFAULT,(\"entering BulkUsb_Create\\n\")); BulkUsb_IncrementIoCount(DeviceObject); // Can\'t accept a new io request if: // 1) device is removed, // 2) has never been started, // 3) is stopped, // 4) has a remove request pending, // 5) has a stop device pending if ( !BulkUsb_CanAcceptIoRequests( DeviceObject ) ) { ntStatus = STATUS_DELETE_PENDING; BULKUSB_KdPrint( DBGLVL_DEFAULT,(\"ABORTING BulkUsb_Create\\n\")); goto done; } irpStack = IoGetCurrentIrpStackLocation (Irp); fileObject = irpStack->FileObject; // fscontext is null for device fileObject->FsContext = NULL; if ( 0 == fileObject->FileName.Length ) // this is the case if opening device as opposed to pipe goto done; // nothing more to do 。 。 。 } fileObject->FileName.Length 的值是0,在测试程序中得到文件名没有在IRPSTACK中传过来,请问是是什么原因,还请大虾指点 |
|
沙发#
发布于:2003-05-13 00:00
FILENAME的参数对吗?可能是这里的问题
|
|