We had to develop our own mirror driver for the sharing server because there is no free and open source mirror driver. #What is a vnc mirror driver windows 7 free Remote Desktop Connection and VNC also use their own mirror drivers to efficiently learn the screen updates. #What is a vnc mirror driver windows 7 drivers Stability and correctness are very important for kernel-mode components because they may easily cause restart or blue screen. Our mirror driver is completely stable such that we have not observed any crashes at all for the last two years. We have used shared memory to establish a communication channel between the mirror driver and the sharing server. Both mirror driver and the sharing server map the same region of the memory to their own address spaces. The shared memory consists of a frame buffer to keep the screen state and a ring buffer which is used by the mirror driver to insert update commands and coordinates. There are two types of commands, BitBlt and MoveRect. The Windows OS notifies the mirror driver for an update, and then mirror driver inserts this update to the ring buffer with command type and the coordinates of the region.
#What is a vnc mirror driver windows 7 update In case of application sharing, the BASS server computes the bounding rect- angle of the shared application windows and informs the mirror driver about the tracking region. The mirror driver only tracks this specific region instead of the whole desktop, decreasing CPU overhead. The Windows XP sharing server is a user-mode process which complements the mirror driver. While the mirror driver keeps track of the frame buffer and the list of updated regions, the sharing server handles connection establish- ment, process keyboard and mouse events, and optimizes, compresses and transmits screen updates ( Figure 5). The multi-threaded sharing server can serve multiple clients simultaneously. The server can wait for incoming connections and it can also connect to clients directly if instructed by the user. The sharing server has been designed con- sidering the following challenges.
Participants may have different bandwidths and they can join in anytime. UDP- based multicast and unicast sessions should be reliable even though UDP does not provide reliability. Some regions or windows may require different encoding for better performance. The sharing server has one main thread, one manager thread, and a number of client threads.