在重叠操作中,提交一个重叠操作后系统把提交的缓冲Lock,请问是什么Lock?大小?起始?

解决方案 »

  1.   

    opentuxedo都说让你把原资料英文贴出来了你的那段话意思是这样:你在重叠操作中提交了一段缓冲,你必须保证这段缓冲在操作完成前始终是有效地,否则如果程序崩溃了别骂M$
      

  2.   

    在重叠操作中,提交一个重叠操作后系统把提交的缓冲Lock,请问是什么Lock?大小?起始?
    ____________
    比如你用WINSOCK的重叠模型发送4096字节的数据( WSASEND ), WSASEND这个函数马上返回, 但是数据此时还没有发送出去,于是这4096字节的缓存块就被系统锁定到非分页内存池中,直到发送完毕.
      

  3.   

    //分配内存
    m_hDib = (HDIB)::GlobalAlloc(GPTR, nSize);
      //锁定内存
    LPBYTE lpData = (LPBYTE)::GlobalLock(m_hDib);
      //执行操作
    ................
      //解除锁定
    GlobalUnlock(m_hDib);
      

  4.   

    When the system locks memory passed into overlapped operations, [it does so on page boundaries]. On the x86 architecture, pages are locked in multiples of 4 KB. If an operation posts a 1 KB buffer, then the system is actually locking a 4 KB chunk of memory. 
    __________
    page boundaries.