RtlCopyMemory总是复制的数目不对
在调用ReadBuf()函数前pb->fill = 0x200;
执行pb->fill += 0x1c;后调用函数ReadBuf()
传入的count是0x21c,
RtlCopyMemory实际拷贝的个数是0x200个,
我在RtlCopyMemory之前下断,再运行结果是对的
在RtlCopyMemory之后下断,可以看到Rc是0x21c但实际拷贝了0x200个。
这是怎么回事?????
ULONG ReadBuf(PPageBuf pb, PUCHAR DataBuf, ULONG count)
{
//这样写就会出问题
//Rc = (pb->fill >= count) ? count : pb->fill ;
//这样写出错的几率会小一点
if (pb->fill >= count)
{
Rc = count;
}
else
{
Rc = pb->fill ;
}
//这样写是没有错误的
Rc = count;
RtlCopyMemory(DataBuf, pb->DataBuf + pb->read, Rc);
//。。。。。
}