Good work on this, make me wish I had win2k, oh well... Gerard Bendotti
> -----Original Message----- > From: rudi de vos [SMTP:[EMAIL PROTECTED]] > Sent: Friday, October 26, 2001 8:22 PM > To: [EMAIL PROTECTED] > Subject: vncdrv SPEED update download adress(forgot it) > > Sorry, > This is the adress > http://services.simac.be/vnc/single/source/vncdrv_V2_00.zip > > -------------------------------------------------------------------------- > ------ > > WINVNCDRV (video hook driver for windows 2000) > > The problem with the old driver was the terrible overhead of drvescape > and extescape. Drvescape stops the > video driver while passing data to winvnc. > > The new driver use shared kernel/user memory. (a lot faster) > All rectangles and source points are cached in regions(driver site). > (region code from rdp2vnc) > Shared memory is used to pass changed rectancles and points from the > cached regions to winvnc. > Simple syncronizing for writing and reading implemented. > > There is still work to do (optimalisation-vncClient.cpp) on the winvnc > site, so I included the winvncsrc. > Bugs,comments,questions... > I will try to answer.. > > CHECK AFTER INSTALLING THAT BOTH DLL's: VNCDRV.DLL and VNCHELP.DLL > are > in system32 > else blue screen if you start vncclient.(vnchelp.dll creates the chared > memory and pointers) > NO RISK, driver is always inactive after reboot. > UPDATE from older version, copy vncdrv.dll AND vnchelp.dll in system32 > > Groeten > Rudi > > For those who asked for a kind of testcode without vnc. This is the > sample code I used to test the driver > -------------------------------------------------------------------------- > -------------------------------- > > #include <Wingdi.h> > #define MAXCOPYRECT 250 > > #define MAPMEM 1030 > #define UNMAPMEM 1031 > typedef struct _SHORTCOPYRECT > { > long type; > RECTL rect; > POINTL point; > }SHORTCOPYRECT; > typedef SHORTCOPYRECT *PSHORTCOPYRECT; > typedef struct _BUFDATA > { > ULONG aantal; > ULONG readwrite; > SHORTCOPYRECT pointrect[MAXCOPYRECT]; > }BUFDATA; > typedef BUFDATA *PBUFDATA; > typedef struct _GETDATABUFFER > { > PBUFDATA buffer; > }GETBUFDATA; > typedef GETBUFDATA *PGETBUFDATA; > > int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance, > LPSTR pszCommandLine, int nCommandShow) > { > GETBUFDATA bufdata; > > HDC gdc; > gdc = GetDC(NULL); > ExtEscape(gdc, MAPMEM, 0, NULL, sizeof(GETBUFDATA), (LPSTR) &bufdata); > /// syncronization > //readwrite 1=reading or writing,block start reading or writing > //readwrite 0=done reading,ready to write > //readwrite 2=done writing,ready to read > //shared memory > // bufdata.buffer->pointrect[ 1 to bufdata.buffer->aantal] contains the > rectangles and points > bufdata.buffer->readwrite=0; > for (int i=0; i<200;i++) > { > if (bufdata.buffer->readwrite==2) > { > bufdata.buffer->readwrite=1; > Sleep(10); //emulate reading data > bufdata.buffer->readwrite=0; > } > } > ExtEscape(gdc, UNMAPMEM, 0, NULL, sizeof(GETBUFDATA), (LPSTR) > &bufdata); > --------------------------------------------------------------------- > To unsubscribe, mail [EMAIL PROTECTED] with the line: > 'unsubscribe vnc-list' in the message BODY > See also: http://www.uk.research.att.com/vnc/intouch.html > --------------------------------------------------------------------- --------------------------------------------------------------------- To unsubscribe, mail [EMAIL PROTECTED] with the line: 'unsubscribe vnc-list' in the message BODY See also: http://www.uk.research.att.com/vnc/intouch.html ---------------------------------------------------------------------