Re: multiple xpdm drivers on vista
- From: "Ivan Brugiolo [MSFT]" <ivanbrug@xxxxxxxxxxxxxxxxxxxx>
- Date: Mon, 27 Nov 2006 10:05:13 -0800
When you talk about `virtual drivers` do you mean `mirror driver` ?
The system design should not have changed in the XPDM area.
In fact, when you have a WDDM video-card and you load a mirror driver,
the system will use the cdd.dll `XPDM` driver, and, it will load any other
mirror driver on the side.
The system ships with one mirror driver, rdpencdd.dll.
You can load that mirror driver by starting wincollab.exe,
and sharing your desktop.
Can you try to add one of your drivers while rdpencdd.dll is loaded ?
Maybe it's a problem with one of them.
The only suspicious thiung I can think of is that DrvNotify (in Vista)
is being used `more often` since cdd.dll needs
to refresh the screen using DxgKrnl.sys
--
--
This posting is provided "AS IS" with no warranties, and confers no rights.
Use of any included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm
"Rudi De Vos" <ultravnc@xxxxxxxxxxxxx> wrote in message
news:408009CA-1D79-46D9-982A-CA2A1ECECF9A@xxxxxxxxxxxxxxxx
Any know problems when you use multiple xpdm drivers on vista ?
Vista running a xpdm video driver (real video card) then i add 2 virtual
drivers,
this works ok on w2k and xp.
Usage:
To support 3 or 4 displays on notebooks you can't use the new driver
model,
external usb VGA, dockings with GPU or virtual video drivers over network
are never of the same chip model as the portable.
In Vista however, i can only activate one.
real+ virtualA
real +virtualB
but as soon as i activate real + virtualA +virtualB the while system loops
**driver virtual A and virtual B are indentical ( except the inf file)
-------------Start driver A (OK)----------------------
00000311 78.06970978 ADrvAssertMode(fee43e08, 0)
00000312 78.06989288 ADrvEnablePDEV:
00000313 78.06990814 ADrvPDEV
00000314 78.07004547 ADrvCompletePDEV
00000315 78.07006073 ADrvEnableSurface:
00000316 78.07007599 ADrvEnableSurface - lock our surface
00000317 78.07009125 ADrvEsurface
00000318 78.07016754 ADrvNotify: DN_DRAWING_BEGIN
00000319 78.07088470 ADrvNotify: DN_DEVICE_ORIGIN (1024,0)
00000320 78.07142639 ADrvCompletePDEV
00000321 78.07143402 ADrvCompletePDEV
00000322 78.08670044 ADrvDisableSurface
00000323 78.08934021 ADrvDsurface
00000324 78.08935547 ADrvDisablePDEV
00000325 78.12242889 ADrvAssertMode(fea36668, 0)
00000326 78.12259674 ADrvEnablePDEV:
00000327 78.12261200 ADrvPDEV
00000328 78.12273407 ADrvCompletePDEV
00000329 78.12274933 ADrvEnableSurface:
00000330 78.12278748 ADrvEnableSurface - lock our surface
00000331 78.12278748 ADrvEsurface
00000332 78.12286377 ADrvNotify: DN_DRAWING_BEGIN
00000333 78.12360382 ADrvNotify: DN_DEVICE_ORIGIN (1024,0)
00000334 78.12402344 ADrvCompletePDEV
00000335 78.12402344 ADrvCompletePDEV
00000336 78.13651276 ADrvDisableSurface
00000337 78.13653564 ADrvDsurface
00000338 78.13654327 ADrvDisablePDEV
00000339 78.16310883 ADrvAssertMode(fea04b38, 0)
00000340 78.16326904 ADrvEnablePDEV:
00000341 78.16328430 ADrvPDEV
00000342 78.16339874 ADrvCompletePDEV
00000343 78.16342163 ADrvEnableSurface:
00000344 78.16411591 ADrvEnableSurface - lock our surface
00000345 78.16412354 ADrvEsurface
00000346 78.16420746 ADrvNotify: DN_DRAWING_BEGIN
00000347 78.16493988 ADrvNotify: DN_DEVICE_ORIGIN (1024,0)
00000348 78.16545868 ADrvCompletePDEV
00000349 78.16545868 ADrvCompletePDEV
00000350 78.17852020 ADrvDisableSurface
00000351 78.17854309 ADrvDsurface
00000352 78.17855072 ADrvDisablePDEV
----------------Start driver B OK ---------------------------------
00000361 107.24395752 BDrvAssertMode(feb1a120, 1)
00000362 107.54464722 BDrvAssertMode(feb1a120, 0)
00000363 107.54485321 BDrvEnablePDEV:
00000364 107.54486847 BDrvPDEV
00000365 107.54500580 BDrvCompletePDEV
00000366 107.54502106 BDrvEnableSurface:
00000367 107.54504395 BDrvEnableSurface - lock our surface
00000368 107.54505920 BDrvEsurface
00000369 107.54673004 BDrvCompletePDEV
00000370 107.54673004 BDrvCompletePDEV
00000371 107.56929779 BDrvDisableSurface
00000372 107.57209778 BDrvDsurface
00000373 107.57210541 BDrvDisablePDEV
00000374 107.59709167 BDrvAssertMode(fef442a8, 0)
00000375 107.59726715 BDrvEnablePDEV:
00000376 107.59728241 BDrvPDEV
00000377 107.59741211 BDrvCompletePDEV
00000378 107.59743500 BDrvEnableSurface:
00000379 107.59745789 BDrvEnableSurface - lock our surface
00000380 107.59745789 BDrvEsurface
00000381 107.59883118 BDrvCompletePDEV
00000382 107.59883881 BDrvCompletePDEV
00000383 107.61106873 BDrvDisableSurface
00000384 107.61109161 BDrvDsurface
00000385 107.61109161 BDrvDisablePDEV
00000386 107.63892365 BDrvAssertMode(ff4484b8, 0)
00000387 107.63916779 BDrvEnablePDEV:
00000388 107.63918304 BDrvPDEV
00000389 107.63932800 BDrvCompletePDEV
00000390 107.63934326 BDrvEnableSurface:
00000391 107.64008331 BDrvEnableSurface - lock our surface
00000392 107.64009094 BDrvEsurface
00000393 107.64196014 BDrvCompletePDEV
00000394 107.64196777 BDrvCompletePDEV
00000395 107.65664673 BDrvDisableSurface
00000396 107.65668488 BDrvDsurface
00000397 107.65669250 BDrvDisablePDEV
-------------------------------------------------------------
First observation
Driver B never has drvnotify.
If renamed the dll's (virtualA.dll --> virtualB.dll and B to A) just to be
sure that
drivers where identical. But it is always the driver with the lowest
screen
number that get the drvnotify, not releated to dll.
------------starting A when B is runnning LOOPING ---------------
[real (1024x768][B 1024x1280][A 1024x1280]
00000401 123.32875824 ADrvAssertMode(feb311f0, 1)
00000402 123.33076477 ADrvNotify: DN_DEVICE_ORIGIN (2048,0)
00000403 123.62335205 ADrvAssertMode(feb311f0, 0)
00000404 123.62371063 ADrvEnablePDEV:
00000405 123.62373352 ADrvPDEV
00000406 123.62387085 ADrvCompletePDEV
00000407 123.62389374 ADrvEnableSurface:
00000408 123.62391663 ADrvEnableSurface - lock our surface
00000409 123.62391663 ADrvEsurface
00000410 123.62400055 ADrvNotify: DN_DRAWING_BEGIN
00000411 123.62474823 ADrvNotify: DN_DEVICE_ORIGIN (2048,0)
00000412 123.62535858 ADrvCompletePDEV
00000413 123.62536621 ADrvCompletePDEV
00000414 123.64171600 ADrvDisableSurface
00000415 123.64433289 ADrvDsurface
00000416 123.64434814 ADrvDisablePDEV
00000417 123.68189240 ADrvAssertMode(ff4484b8, 0)
00000418 123.68206024 ADrvEnablePDEV:
00000419 123.68207550 ADrvPDEV
00000420 123.68221283 ADrvCompletePDEV
00000421 123.68222046 ADrvEnableSurface:
00000422 123.68225861 ADrvEnableSurface - lock our surface
00000423 123.68225861 ADrvEsurface
00000424 123.68233490 ADrvNotify: DN_DRAWING_BEGIN
00000425 123.68312836 ADrvNotify: DN_DEVICE_ORIGIN (2048,0)
00000426 123.68355560 ADrvCompletePDEV
00000427 123.68355560 ADrvCompletePDEV
00000428 123.69692993 ADrvDisableSurface
00000429 123.69695282 ADrvDsurface
00000430 123.69696045 ADrvDisablePDEV
00000431 123.72312927 ADrvAssertMode(feb311f0, 0)
00000432 123.72339630 ADrvEnablePDEV:
00000433 123.72341919 ADrvPDEV
00000434 123.72354889 ADrvCompletePDEV
00000435 123.72357178 ADrvEnableSurface:
00000436 123.72427368 ADrvEnableSurface - lock our surface
00000437 123.72427368 ADrvEsurface
00000438 123.72436523 ADrvNotify: DN_DRAWING_BEGIN
00000439 123.72520447 ADrvNotify: DN_DEVICE_ORIGIN (2048,0)
00000440 123.72574615 ADrvCompletePDEV
00000441 123.72574615 ADrvCompletePDEV
00000442 123.74198914 ADrvDisableSurface
00000443 123.74201965 ADrvDsurface
00000444 123.74202728 ADrvDisablePDEV
00000445 123.99344635 BDrvAssertMode(ff43a350, 0)
00000446 123.99362183 BDrvEnablePDEV:
00000447 123.99363708 BDrvPDEV
00000448 123.99376678 BDrvCompletePDEV
00000449 123.99378967 BDrvEnableSurface:
00000450 123.99381256 BDrvEnableSurface - lock our surface
00000451 123.99381256 BDrvEsurface
00000452 123.99470520 ADrvNotify: DN_DEVICE_ORIGIN (1664,0)
00000453 123.99535370 BDrvCompletePDEV
00000454 123.99536133 BDrvCompletePDEV
00000455 124.01645660 BDrvDisableSurface
00000456 124.01909637 BDrvDsurface
00000457 124.01910400 BDrvDisablePDEV
00000458 124.04107666 BDrvAssertMode(feb1a118, 0)
00000459 124.04125214 BDrvEnablePDEV:
00000460 124.04126740 BDrvPDEV
00000461 124.04138947 BDrvCompletePDEV
00000462 124.04141235 BDrvEnableSurface:
00000463 124.04143524 BDrvEnableSurface - lock our surface
00000464 124.04143524 BDrvEsurface
00000465 124.04240417 ADrvNotify: DN_DEVICE_ORIGIN (1664,0)
00000466 124.04282379 BDrvCompletePDEV
00000467 124.04283142 BDrvCompletePDEV
00000468 124.05725861 BDrvDisableSurface
00000469 124.05728912 BDrvDsurface
00000470 124.05728912 BDrvDisablePDEV
00000471 124.08261108 BDrvAssertMode(ff43a350, 0)
00000472 124.08277893 BDrvEnablePDEV:
00000473 124.08280182 BDrvPDEV
00000474 124.08292389 BDrvCompletePDEV
00000475 124.08294678 BDrvEnableSurface:
00000476 124.08363342 BDrvEnableSurface - lock our surface
00000477 124.08364105 BDrvEsurface
00000478 124.08496094 ADrvNotify: DN_DEVICE_ORIGIN (2048,0)
00000479 124.08551025 BDrvCompletePDEV
00000480 124.08551025 BDrvCompletePDEV
00000481 124.10243225 BDrvDisableSurface
00000482 124.10245514 BDrvDsurface
00000483 124.10247040 BDrvDisablePDEV
00000484 124.60281372 ADrvAssertMode(ff4484b8, 0)
00000485 124.60300446 ADrvEnablePDEV:
00000486 124.60301208 ADrvPDEV
00000487 124.60314941 ADrvCompletePDEV
00000488 124.60317230 ADrvEnableSurface:
00000489 124.60319519 ADrvEnableSurface - lock our surface
00000490 124.60319519 ADrvEsurface
00000491 124.60327148 ADrvNotify: DN_DRAWING_BEGIN
00000492 124.60402679 ADrvNotify: DN_DEVICE_ORIGIN (2048,0)
00000493 124.60462952 ADrvCompletePDEV
00000494 124.60462952 ADrvCompletePDEV
00000495 124.62181854 ADrvDisableSurface
00000496 124.62445068 ADrvDsurface
00000497 124.62446594 ADrvDisablePDEV
00000498 124.64775848 ADrvAssertMode(ff43a350, 0)
00000499 124.64794159 ADrvEnablePDEV:
00000500 124.64795685 ADrvPDEV
00000501 124.64809418 ADrvCompletePDEV
00000502 124.64810944 ADrvEnableSurface:
00000503 124.64813995 ADrvEnableSurface - lock our surface
00000504 124.64814758 ADrvEsurface
00000505 124.64821625 ADrvNotify: DN_DRAWING_BEGIN
00000506 124.64900970 ADrvNotify: DN_DEVICE_ORIGIN (2048,0)
00000507 124.64944458 ADrvCompletePDEV
00000508 124.64944458 ADrvCompletePDEV
00000509 124.66358185 ADrvDisableSurface
---------------------------------------------------
As you can see, the whole thing start looping
line
00000452 123.99470520 ADrvNotify: DN_DEVICE_ORIGIN (1664,0)
look me realy strange.
This problem is driving me crazy, did the xpdm model changed compared to
XP ?
Does vista support 3 xdmp drivers ? any know bugs...
.
- Follow-Ups:
- Re: multiple xpdm drivers on vista
- From: Rudi De Vos
- Re: multiple xpdm drivers on vista
- References:
- multiple xpdm drivers on vista
- From: Rudi De Vos
- multiple xpdm drivers on vista
- Prev by Date: Re: Mux driver?
- Next by Date: Re: Virtual Device Driver
- Previous by thread: multiple xpdm drivers on vista
- Next by thread: Re: multiple xpdm drivers on vista
- Index(es):