void  Socket::ProcessWrite(void)
{
#if 0
  m_lock->Retain();
  {
#endif
  unsigned  writtenBytes;

  systemWrite(m_writeBuf, m_writeBufSize, writtenBytes);
  (void) ::memcpy(m_writeBuf, m_writeBuf + writtenBytes, m_writeBufSize - writtenBytes);
  m_writeBufSize -= writtenBytes;
#if 0
  }
  m_lock->Release();
#endif
}
Example #2
0
// 这是我们自己处理IRP_MJ_WRITE的方法
NTSTATUS 
myWrite(
		IN PDEVICE_OBJECT DeviceObject, 
		IN PIRP Irp
		)
{
	// 判断是不是我们的设备
	if(DeviceObject == gDeviceObject){
		// 
		NTSTATUS status = STATUS_SUCCESS;

		//
		// 这里做处理,要对IRP中的数据进行相应的保存、解析
		//

		// 直接返回
		return status;
	}

	// 不要忘了系统过程
	return systemWrite(DeviceObject, Irp);
}