wdynasty
驱动大牛
驱动大牛
  • 注册日期2003-10-10
  • 最后登录2011-04-07
  • 粉丝0
  • 关注0
  • 积分627分
  • 威望199点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
阅读:1037回复:1

非常棘手的问题,90分相送

楼主#
更多 发布于:2005-04-08 21:50
我把论坛上tiamo的虚拟磁盘修改了一下 ,
tiamo的虚拟磁盘把大文件拷贝到磁盘时没有问题,
我想把磁盘的数据存到数据库 ,但是 当文件比较大 ,超过 20M
系统就死了 。小文件操作没问题。不知道啥原因 。

与算法等应该没关系,因为我就在tiamo的 写磁盘的函数里面
加了一段tdi发包函数代码 如下:只是往数据库写数据,但是文件比较大的时候,系统就死了。

for ( i=0; i<Count; i++) {
// 发送WRITE_CMD
write_cmd.cmd_id = 0x2a;
Start =StartLBA+512*i;
write_cmd.start_lba = htonl(Start);
DbgPrint ( \"TDI Rwrite: %d\\n\", Start);
// 拷贝数据

if ( left >= BlockSize) {
RtlCopyMemory(write_cmd.sector, (UCHAR *)(pSrb->DataBuffer)+i*BlockSize, BlockSize);
write_cmd.write_len = htonl(BlockSize);
devDebugPrint(\"write %d bytes:\\n\", BlockSize);


status = ZwWriteFile(pExt->m_hFileHandle[pSrb->TargetId],NULL,NULL,NULL,&ioStatus,(UCHAR *)(pSrb->DataBuffer)+i*BlockSize,
BlockSize,&pos,NULL);
pos.QuadPart+=BlockSize;
// DbgPrint ( \"TDI Rwrite: %d\\n\",  ntohs(pos.QuadPart));
left -= BlockSize;
        }
        else {
RtlCopyMemory(write_cmd.sector, (UCHAR *)(pSrb->DataBuffer)+i*BlockSize, left);
write_cmd.write_len = htonl(left);

status = ZwWriteFile(pExt->m_hFileHandle[pSrb->TargetId],NULL,NULL,NULL,&ioStatus,(UCHAR *)(pSrb->DataBuffer)+i*BlockSize,
left,&pos,NULL);
left =0;
}

len = sizeof(write_cmd);
dStatus = TdiSendDatagram ( // send datagram
pTdiTransportObject, // to transport
MY_PORT, // port
dTdiAddress, // address
&write_cmd, // data
len ); // size
if ( !NT_SUCCESS ( dStatus ) )
DbgPrint ( \"ERROR: writing sending %X\\n\", dStatus );
else
DbgPrint ( \"writing send success\\n\" );

// 接收确认
len = sizeof(pExt->buf);
dStatus = TdiReceiveDatagram (
pTdiTransportObject, // to transport
MY_PORT, // port
&dTdiAddress, // address
pExt->buf, // buffer
&len ); // buffer size
DbgPrint ( \"TDI receive len: %d\\n\", len);
if ( NT_SUCCESS ( dStatus ) )
DbgPrint ( \"writing rec: success\\n\");
else
DbgPrint ( \"ERROR: writing \\n\" );

}
21世纪是搜索的世界,看看BAIDU的股票就知道了。
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-04-12 13:41
这样看代码是乎没有问题
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
游客

返回顶部