阅读:1662回复:1
请教一个文件传输到usb的效率问题。
请教个问题,我要用DeviceIoControl传pc的文件到u盘设备,好像DeviceIoControl一次最大只能传64k,这样导致效率很低,请问,有没有办法提高传输效率呢?
另外,为何每次只能传64K数据呢?? |
|
沙发#
发布于:2010-03-03 00:40
DeviceIoControl传输每次都可以指定buffering method模式,我猜想你可能指定用METHOD_BUFFERED方式,该方式I/O Manager会在内部使用system buffer在你的输入缓冲区和输出缓冲区拷贝来拷贝去,效率十分低下吧,DeviceIoControl传输可能是为进行设备电气控制而专用的,不是为大量传输数据设计的。至于64K的限制,难道是因为内部使用ExAllocatePool( IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes )分配内存时受到SIZE_T的限制(SIZE_T在32位条件下是64K)?
|
|