首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

求解parameters.write.byteoffset.quadpart的作用,该如何处理

2012-02-11 
求解parameters.write.byteoffset.quadpart的作用pDevExt-buffer (PUCHAR)ExAllocatePool(PagedPool,MA

求解parameters.write.byteoffset.quadpart的作用
pDevExt->buffer = (PUCHAR)ExAllocatePool(PagedPool,MAX_FILE_LENGTH);
ULONG ulWriteOffset=(ULONG)stack->Parameters.Write.ByteOffset.QuadPart;
memcpy( pDevExt->buffer + ulWriteOffset , pIrp->AssociatedIrp.SystemBuffer, ulWriteLength);

求高手解答为什么将pIrp->AssociatedIrp.SystemBuffer复制到自己申请的buffer缓冲区还要在后面加个ulWriteOffset,去掉行不行

[解决办法]
驱动模仿一个文件吧 驱动保存文件就用的pDevExt->buffer,buffer的长度是MAX_FILE_LENGTH(即文件最大长度)。

当写请求到达驱动的时候,需要把应用程序要写数据写到文件中(即复制到buffer中)。
ULONG ulWriteOffset=(ULONG)stack->Parameters.Write.ByteOffset.QuadPart;就是本次写操作的偏移量。比如文件长度是2000Bytes,ulWriteOffset为1000,那么意思就是从文件开始的第1000个字节开始将ulWriteLength个Bytes写到文件中。

写文件就2个参数,一个ByteOffset(即写到文件中的哪个位置),一个length(即写多少个字节的数据)

明白了吗?

热点排行