阅读:1187回复:0
如果要是在应用层作加密的话,那么READ、WRITE操作应使用非缓存操作的问题
如果要是在应用层作加密的话,那么READ、WRITE操作应使用非缓存操作;
我是在应用层加密,非缓存加密写采用如下方式: HANDLE outFile = CreateFile(saveFileName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING | FILE_FLAG_WRITE_THROUGH, NULL); WriteFile(outFile, data, tmp, &wmWritten, NULL); 但这种方式有问题啊,加上FILE_FLAG_NO_BUFFERING后,每次读写的大小必须是磁盘簇大小的整数倍。簇的大小取决与格式化时传入的参数。默认NTFS的是4*1024字节。所以读写的缓存大小最好是4K的整数倍。 那么当我的写的内容不是4k的整数倍的时候,就需要补足4k的整数倍后写入,这么一来就会多出一些无用的内容。 |
|
|