阅读:979回复:0
写usb的一个问题,能不能把文件直接写到U盘中
小弟刚接触usb开发不久,最近遇到一个关于写usb的问题。写文件到U盘中,写成功了,但是没有直接写到u盘中,而需要安全删除U盘后,再重新插入u盘后才能看到更新的内容。可能写入的文件存在系统缓存中或者硬件缓存中。现在有什么办法直接能将文件写到u盘中,而不用缓存?
我用 CreateFile( \\.\H, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ| FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_FLAG_NO_BUFFERING, NULL); 打开u盘,然后通过 DeviceIoControl( DeviceHandle, IOCTL_SCSI_PASS_THROUGH_DIRECT, pSRB, sizeof(PT_SCSI_REQUEST_BLOCK), pSRB, sizeof(PT_SCSI_REQUEST_BLOCK), &BytesReturned, FALSE); 写SCSI Command完成操作,而且从返回的指中可以得到操作都已成功了。 |
|