Dual Display

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Hi there. I'm trying to get both my displays to be active at bootup.
Using regmon I've found the keys that need to be changed are under
[HKEY_CURRENT_CONFIG\System\CurrentControlSet\CONTROL\VIDEO\<PNP ID
here>\0000] and
[HKEY_CURRENT_CONFIG\System\CurrentControlSet\CONTROL\VIDEO\<PNP ID
here>\0000\Mon4D545800] and the second adapter is at the same paths, just
different PNP ID.

With this information I have created a .reg file I can run and after the
next reboot both displays are active. Thing is, the PNP Guid seems to
change from build to build (guess it's created during FBA PnP config ??) so I
have figure out how to change my .reg file/"process for delivering this"
based on a varying PNP ID.

Any ideas how I can apply settings like these without knowing the IDs
beforehand ?

JC
 
Jeff,

Correct way to do this would be trough application and API call
ChangeDisplaySettingsEx.

Or little hacky way would be to change default resolution in inf file. In
inf file you deal with relative registry path so what ever PnPID that is
assigned by OS your keys can reach correct place.

Regards,
Slobodan
 
I think I've got the display settings already set in TD - Video Adapter,
Settings - set to 800 x 600, 32bit & 60 hertz. I think I'm OK there.

I'm wanting to enable the second monitor, which can be done by checking
"Extend my Windows Desktop onto this Monitor" in Display Control Panel.
Thing is "Extend my Windows Desktop onto this Monitor" is not a 1 for Yes 0
for No reg entry, it sets all these values for that second adapter :

[HKEY_CURRENT_CONFIG\System\CurrentControlSet\CONTROL\VIDEO\< Second Adapter
ID Here>\0000]
"Attach.ToDesktop"=dword:00000001
"DefaultSettings.BitsPerPel"=dword:00000020
"DefaultSettings.XResolution"=dword:00000320
"DefaultSettings.YResolution"=dword:00000258
"DefaultSettings.VRefresh"=dword:0000003c
"DefaultSettings.Flags"=dword:00000000
"DefaultSettings.XPanning"=dword:00000000
"DefaultSettings.YPanning"=dword:00000000
"DefaultSettings.Orientation"=dword:00000000
"DefaultSettings.FixedOutput"=dword:00000000
"Attach.RelativeX"=dword:00000000
"Attach.RelativeY"=dword:00000000

I would just like to set these and have them working after FBA.

I checked the Trident inf file, and there are HKR references but I'm not
sure where to add my changes. This is a snippet from the inf :

[Trid3d.SoftwareSettings]
AddReg = Trid3d_SoftwareDeviceSettings

[trid3d.GeneralConfigData]
MaximumNumberOfDevices = 2

[trid3d_SoftwareDeviceSettings]
HKR,, InstalledDisplayDrivers, %REG_MULTI_SZ%, trid3d
HKR,, VgaCompatible, %REG_DWORD%, 1

HKR,, PanningSupport, %REG_SZ%, 1
HKR,, HotKeyEnable, %REG_DWORD%, 1
HKR,, DigitalTVEnable, %REG_DWORD%, 1
HKR,, DeviceInfo, %REG_DWORD%, 3
HKR,, BootDevicePolicy, %REG_DWORD%, 0
HKR,, EnableMHSSupport, %REG_DWORD%, 1
HKR,, EnableDualVideos, %REG_DWORD%, 0
HKR,, Win95Compatible, %REG_SZ%, 1
HKR,, HardwareInformation.LastMode, %REG_DWORD%,0
HKR,, HKeyMultiViewLoop, %REG_SZ%, 0
HKR,, OverlayFocusOnLCD, %REG_SZ%, 0

HKR,, AGPTextureSize, %REG_DWORD%, 16
HKR,, EnableAGPCmdList, %REG_DWORD%, 1
HKR,, GammaPageEnable, %REG_SZ%, 1

; Special Pool
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management",
PoolTag, %REG_DWORD%, 1768843597
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management",
PoolTagOverruns, %REG_DWORD%, 1

; Utility components for registry.
HKR,, CRTHost, %REG_DWORD%, 1
HKR,, DualViewOverlayFocus, %REG_DWORD%, 0
HKR,, MultipleOutputSupport, %REG_SZ%, 1

Sorry, not very familiar with manipulating inf files.

JC
 
Jeff,

Unfortunately CurrentControlSet\CONTROL\VIDEO\< Second Adapter ID Here>
Is not under supported PnP paths suported by inf file.
These are either filled by CoInstaller DLL provided with driver,
unfortunately exploiting this is driver specific and it will require time
for you to figure out (in case that this can be done).

It would be better for you to make small application that use
ChangeDisplaySettingsEx to set your multimonitor settings. And it will work
on all graphic cards. Just call you app during the FBA.

Regards,
Slobodan




Jeff Clegg said:
I think I've got the display settings already set in TD - Video Adapter,
Settings - set to 800 x 600, 32bit & 60 hertz. I think I'm OK there.

I'm wanting to enable the second monitor, which can be done by checking
"Extend my Windows Desktop onto this Monitor" in Display Control Panel.
Thing is "Extend my Windows Desktop onto this Monitor" is not a 1 for Yes
0
for No reg entry, it sets all these values for that second adapter :

[HKEY_CURRENT_CONFIG\System\CurrentControlSet\CONTROL\VIDEO\< Second
Adapter
ID Here>\0000]
"Attach.ToDesktop"=dword:00000001
"DefaultSettings.BitsPerPel"=dword:00000020
"DefaultSettings.XResolution"=dword:00000320
"DefaultSettings.YResolution"=dword:00000258
"DefaultSettings.VRefresh"=dword:0000003c
"DefaultSettings.Flags"=dword:00000000
"DefaultSettings.XPanning"=dword:00000000
"DefaultSettings.YPanning"=dword:00000000
"DefaultSettings.Orientation"=dword:00000000
"DefaultSettings.FixedOutput"=dword:00000000
"Attach.RelativeX"=dword:00000000
"Attach.RelativeY"=dword:00000000

I would just like to set these and have them working after FBA.

I checked the Trident inf file, and there are HKR references but I'm not
sure where to add my changes. This is a snippet from the inf :

[Trid3d.SoftwareSettings]
AddReg = Trid3d_SoftwareDeviceSettings

[trid3d.GeneralConfigData]
MaximumNumberOfDevices = 2

[trid3d_SoftwareDeviceSettings]
HKR,, InstalledDisplayDrivers, %REG_MULTI_SZ%, trid3d
HKR,, VgaCompatible, %REG_DWORD%, 1

HKR,, PanningSupport, %REG_SZ%, 1
HKR,, HotKeyEnable, %REG_DWORD%, 1
HKR,, DigitalTVEnable, %REG_DWORD%, 1
HKR,, DeviceInfo, %REG_DWORD%, 3
HKR,, BootDevicePolicy, %REG_DWORD%, 0
HKR,, EnableMHSSupport, %REG_DWORD%, 1
HKR,, EnableDualVideos, %REG_DWORD%, 0
HKR,, Win95Compatible, %REG_SZ%, 1
HKR,, HardwareInformation.LastMode, %REG_DWORD%,0
HKR,, HKeyMultiViewLoop, %REG_SZ%, 0
HKR,, OverlayFocusOnLCD, %REG_SZ%, 0

HKR,, AGPTextureSize, %REG_DWORD%, 16
HKR,, EnableAGPCmdList, %REG_DWORD%, 1
HKR,, GammaPageEnable, %REG_SZ%, 1

; Special Pool
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management",
PoolTag, %REG_DWORD%, 1768843597
HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management",
PoolTagOverruns, %REG_DWORD%, 1

; Utility components for registry.
HKR,, CRTHost, %REG_DWORD%, 1
HKR,, DualViewOverlayFocus, %REG_DWORD%, 0
HKR,, MultipleOutputSupport, %REG_SZ%, 1

Sorry, not very familiar with manipulating inf files.

JC
 
OK. Do you have any links to sample applications like this ? I am not a
programmer and would be really lost.
 
OK, thanx. It looks like the codeguru link is similar to what I think I
need. I guess I need to compile the code. What should I use as a compiler
?

Sorry, my only programming experience is limited to pascal 6.5 :)

JC
 
Jeff,

Microsoft Visual C++ 6.0, 003 .Net, 2005 .Net will do that for you.
If you go with 6.0, make sure to install latest Platform SDK.

KM
 
If you still need it, i wrote exactly what you need;

Contact me by e-mail, i'll send it.
 
Back
Top