看雪论坛
发新帖

[求助]minifilter,文件透明加密,

冰栈 2017-9-13 00:18 143
//获取文件长度
LONGLONG offset=(fileInfo->EndOfFile.QuadPart-ENCRYPT_MARK_LEN)-(iopb->Parameters.Read.ByteOffset.QuadPart);
//如果读写偏移超出真正的文件尾
if(offset<0)
{
iopb->Parameters.Read.ByteOffset.QuadPart = fileInfo->EndOfFile.QuadPart + 1;
return FLT_PREOP_SUCCESS_NO_CALLBACK;
}
//校对读写长度
offset=(fileInfo->EndOfFile.QuadPart-ENCRYPT_MARK_LEN)-(iopb->Parameters.Read.ByteOffset.QuadPart+ioo-[>Parameters.Read.Length-1);
//读写长度超过文件真正的尾部
if(offset<0)
{
iopb->Parameters.Read.Length=(fileInfo->EndOfFile.QuadPart-ENCRYPT_MARK_LEN)-(iopb->Parameters.Read.ByteOffset.QuadPart)+1;
FltSetCallbackDataDirty(Data);
readLen = iopb->Parameters.Read.Length;
}


为什么这个要加1呀 iopb->Parameters.Read.ByteOffset.QuadPart = fileInfo->EndOfFile.QuadPart + 1;
还有就是后面那个为什么要-1
本主题帖已收到 0 次赞赏,累计¥0.00
最新回复 (0)
返回



©2000-2017 看雪学院 | Based on Xiuno BBS | 微信公众号:ikanxue
Time: 0.012, SQL: 8 / 京ICP备10040895号-17