Prev: Turn on verbose warnings in DDK compiler
Next: Reading/Writing to PCI Config Space of PLX bridge
From: Shishir on 19 Jan 2010 16:41 Hello, we are trying to programmtically blank display for a use case we have. This used to work in XP with the OCTL “IOCTL_VIDEO_SET_OUTPUT_DEVICE_POWER_STATE”. But this is deprecated in Vista and win7. Other methods of hooking, attaching a device to monitor stack etc. have been tried but they either blank the d3d surface as well, or bugcheck the system. The Wmi Provider for CIM_DesktopMonitor doesn't help as its underlying implementation in IRP_MJ_SYSTEM_CONTROL handler for monitor driver is not provided by Microsoft as of now. Trying to do it using Dxgi provided powerstate function either crashes or with help, balnks for a short time but turns it back on again. We would like to get a supported means of doing this. Appreciate if Micorosft could help. Thanks Shishir Pardikar Technology Strategist, Citrix Systems Inc., shishir.pardikar(a)citrix.com 425-895-4765 (O)
From: Ivan Brugiolo [MSFT] on 19 Jan 2010 18:17 Can you clarify your expectations ? Are you expecting to be able to power-down a display without causing the Video Present Network Source not to loose its content ? I'm afraid that is architecturally impossible in WDDM, a and, the fact that the machine bugchecks should convince you of that. If you carefully observe what happens to the displays when the LUA/consent.exe prompt comes up, you will notice that the screen is blanked-out. To visually mitigate that, the gamma-ramp of the monitor is modulated to black before the VidPn source is discarded and a new empty one is created. That is naturally only eye-candy to mask the problem that primaries are always blanked-out when they are recreated and assigned to a new Dxgk-Device elected as the current owner of the VidPn. At the fundamental level, the problem is the same as asking if the memory manager of the OS could please give you a page with its old content when you VirtualAlloc. This would be a disclosure of content. Also, even if you could get back some pages, there would be no guarantee that the unchanged content is usable (because of different swizzling formats, incompatible requirements of a scanout source and a scanout target when a new display comes-up, etc, etc). -- -- 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 "Shishir" <Shishir(a)discussions.microsoft.com> wrote in message news:EEC8C807-7131-49F6-AF4D-20F66E15D455(a)microsoft.com... > Hello, we are trying to programmtically blank display for a use case we > have. > > This used to work in XP with the OCTL > “IOCTL_VIDEO_SET_OUTPUT_DEVICE_POWER_STATE”. But this is deprecated in > Vista > and win7. > > Other methods of hooking, attaching a device to monitor stack etc. have > been > tried but they either blank the d3d surface as well, or bugcheck the > system. > > The Wmi Provider for CIM_DesktopMonitor doesn't help as its underlying > implementation in IRP_MJ_SYSTEM_CONTROL handler for monitor driver is not > provided by Microsoft as of now. > > Trying to do it using Dxgi provided powerstate function either crashes or > with help, balnks for a short time but turns it back on again. > > We would like to get a supported means of doing this. Appreciate if > Micorosft could help. > > Thanks > Shishir Pardikar > Technology Strategist, > Citrix Systems Inc., shishir.pardikar(a)citrix.com > 425-895-4765 (O) >
From: Shishir on 19 Jan 2010 19:59 Ivan, thanks much for the quick repsonse. The result I am expecting is as if the monitor power button is turned off while windows and all the apps continue to run and render, unware that the monitor is off. Does that clarify it? Thanks Shishir "Ivan Brugiolo [MSFT]" wrote: > Can you clarify your expectations ? > Are you expecting to be able to power-down a display without > causing the Video Present Network Source not to loose its content ? > > I'm afraid that is architecturally impossible in WDDM, a > and, the fact that the machine bugchecks should convince you of that. > > If you carefully observe what happens to the displays when > the LUA/consent.exe prompt comes up, you will notice that the > screen is blanked-out. To visually mitigate that, the gamma-ramp of the > monitor is modulated to black before the VidPn source is discarded > and a new empty one is created. > That is naturally only eye-candy to mask the problem that > primaries are always blanked-out when they are recreated and assigned > to a new Dxgk-Device elected as the current owner of the VidPn. > > At the fundamental level, the problem is the same as asking > if the memory manager of the OS could please give you > a page with its old content when you VirtualAlloc. > This would be a disclosure of content. > Also, even if you could get back some pages, there would > be no guarantee that the unchanged content is usable (because of > different swizzling formats, incompatible requirements of a scanout source > and a scanout target when a new display comes-up, etc, etc). > > -- > > -- > 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 > > > "Shishir" <Shishir(a)discussions.microsoft.com> wrote in message > news:EEC8C807-7131-49F6-AF4D-20F66E15D455(a)microsoft.com... > > Hello, we are trying to programmtically blank display for a use case we > > have. > > > > This used to work in XP with the OCTL > > “IOCTL_VIDEO_SET_OUTPUT_DEVICE_POWER_STATE”. But this is deprecated in > > Vista > > and win7. > > > > Other methods of hooking, attaching a device to monitor stack etc. have > > been > > tried but they either blank the d3d surface as well, or bugcheck the > > system. > > > > The Wmi Provider for CIM_DesktopMonitor doesn't help as its underlying > > implementation in IRP_MJ_SYSTEM_CONTROL handler for monitor driver is not > > provided by Microsoft as of now. > > > > Trying to do it using Dxgi provided powerstate function either crashes or > > with help, balnks for a short time but turns it back on again. > > > > We would like to get a supported means of doing this. Appreciate if > > Micorosft could help. > > > > Thanks > > Shishir Pardikar > > Technology Strategist, > > Citrix Systems Inc., shishir.pardikar(a)citrix.com > > 425-895-4765 (O) > > > . >
From: Ivan Brugiolo [MSFT] on 19 Jan 2010 20:27 If you power-off the monitor, or you disconnect the monitor, a couple of things can happen: -1- the awareness of VidPn-Target connectivity detects the event -2- the awareness of VidPn-Target connectivity does not detect the event -2- is pretty rare, and it requires broken implementations of VGA connectors (pre VESA standardization) or S-Video type of connectors. -1- is the most common case. When -1- occurs, there are a couple of outcomes: - there is a mode change - there isn't a mode change If there is a mode-change, the system will try to find a new functional VidPn, and, it will go great lenghts (by even simulating a monitor) to do that. We've seen scenarios where combinations of specific hardware and drivers made the system connect the video-stack to the disconnected-display-driver, but, on average, that is very un-common. If there isn't a mode change, then what happens is that the device that currently owns the VidPn is evicted, and, any attempt to re-acquire ownership will fail. The effect on applications depends on the type of applications. Vanilla GDI applications and/or windowed mode DX applications should run un-affected. Full-Screen DX applications may have undefined behaviors, especially if they were not designed with revokable VidPn ownership in mind. We've seen certain games really misbehave when running in multi-mon scenarios when the ownership of one output was shared or kicked-out by one other owner. Now, I would need to know exactly which scenario you are experiencing. What makes you think that the applications run / do-not run unaffected ? -- -- 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 "Shishir" <Shishir(a)discussions.microsoft.com> wrote in message news:F32E1579-0955-4308-8749-BCA9EEF199AD(a)microsoft.com... > Ivan, thanks much for the quick repsonse. The result I am expecting is as > if > the monitor power button is turned off while windows and all the apps > continue to run and render, unware that the monitor is off. Does that > clarify > it? > > Thanks > Shishir > > > "Ivan Brugiolo [MSFT]" wrote: > >> Can you clarify your expectations ? >> Are you expecting to be able to power-down a display without >> causing the Video Present Network Source not to loose its content ? >> >> I'm afraid that is architecturally impossible in WDDM, a >> and, the fact that the machine bugchecks should convince you of that. >> >> If you carefully observe what happens to the displays when >> the LUA/consent.exe prompt comes up, you will notice that the >> screen is blanked-out. To visually mitigate that, the gamma-ramp of the >> monitor is modulated to black before the VidPn source is discarded >> and a new empty one is created. >> That is naturally only eye-candy to mask the problem that >> primaries are always blanked-out when they are recreated and assigned >> to a new Dxgk-Device elected as the current owner of the VidPn. >> >> At the fundamental level, the problem is the same as asking >> if the memory manager of the OS could please give you >> a page with its old content when you VirtualAlloc. >> This would be a disclosure of content. >> Also, even if you could get back some pages, there would >> be no guarantee that the unchanged content is usable (because of >> different swizzling formats, incompatible requirements of a scanout >> source >> and a scanout target when a new display comes-up, etc, etc). >> >> -- >> >> -- >> 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 >> >> >> "Shishir" <Shishir(a)discussions.microsoft.com> wrote in message >> news:EEC8C807-7131-49F6-AF4D-20F66E15D455(a)microsoft.com... >> > Hello, we are trying to programmtically blank display for a use case we >> > have. >> > >> > This used to work in XP with the OCTL >> > “IOCTL_VIDEO_SET_OUTPUT_DEVICE_POWER_STATE”. But this is deprecated in >> > Vista >> > and win7. >> > >> > Other methods of hooking, attaching a device to monitor stack etc. have >> > been >> > tried but they either blank the d3d surface as well, or bugcheck the >> > system. >> > >> > The Wmi Provider for CIM_DesktopMonitor doesn't help as its underlying >> > implementation in IRP_MJ_SYSTEM_CONTROL handler for monitor driver is >> > not >> > provided by Microsoft as of now. >> > >> > Trying to do it using Dxgi provided powerstate function either crashes >> > or >> > with help, balnks for a short time but turns it back on again. >> > >> > We would like to get a supported means of doing this. Appreciate if >> > Micorosft could help. >> > >> > Thanks >> > Shishir Pardikar >> > Technology Strategist, >> > Citrix Systems Inc., shishir.pardikar(a)citrix.com >> > 425-895-4765 (O) >> > >> . >>
From: Shishir on 20 Jan 2010 16:28 Ivan, maybe you can help with the other thing our guys tried as below. Send WM_SYSCOMMAND message from user mode with SC_MONITORPOWER flag. This blanks the monitor, but D3D applications do not render after blanking happens. OpenGL apps work fine. Do you know why D3D apps do not render? Is there some way to work around this? Thanks Shishir "Ivan Brugiolo [MSFT]" wrote: > If you power-off the monitor, or you disconnect the monitor, > a couple of things can happen: > -1- the awareness of VidPn-Target connectivity detects the event > -2- the awareness of VidPn-Target connectivity does not detect the event > > -2- is pretty rare, and it requires broken implementations of VGA connectors > (pre VESA standardization) or S-Video type of connectors. > -1- is the most common case. > > When -1- occurs, there are a couple of outcomes: > - there is a mode change > - there isn't a mode change > > If there is a mode-change, the system will try to find a new functional > VidPn, > and, it will go great lenghts (by even simulating a monitor) to do that. > We've seen scenarios where combinations of specific hardware and drivers > made the system connect the video-stack to the disconnected-display-driver, > but, on average, that is very un-common. > > If there isn't a mode change, then what happens is that the device that > currently owns the VidPn is evicted, and, any attempt to re-acquire > ownership > will fail. The effect on applications depends on the type of applications. > Vanilla GDI applications and/or windowed mode DX applications > should run un-affected. > Full-Screen DX applications may have undefined behaviors, especially > if they were not designed with revokable VidPn ownership in mind. > We've seen certain games really misbehave when running in multi-mon > scenarios when the ownership of one output was shared or kicked-out > by one other owner. > > Now, I would need to know exactly which scenario you are experiencing. > What makes you think that the applications run / do-not run unaffected ? > -- > > -- > 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 > > > "Shishir" <Shishir(a)discussions.microsoft.com> wrote in message > news:F32E1579-0955-4308-8749-BCA9EEF199AD(a)microsoft.com... > > Ivan, thanks much for the quick repsonse. The result I am expecting is as > > if > > the monitor power button is turned off while windows and all the apps > > continue to run and render, unware that the monitor is off. Does that > > clarify > > it? > > > > Thanks > > Shishir > > > > > > "Ivan Brugiolo [MSFT]" wrote: > > > >> Can you clarify your expectations ? > >> Are you expecting to be able to power-down a display without > >> causing the Video Present Network Source not to loose its content ? > >> > >> I'm afraid that is architecturally impossible in WDDM, a > >> and, the fact that the machine bugchecks should convince you of that. > >> > >> If you carefully observe what happens to the displays when > >> the LUA/consent.exe prompt comes up, you will notice that the > >> screen is blanked-out. To visually mitigate that, the gamma-ramp of the > >> monitor is modulated to black before the VidPn source is discarded > >> and a new empty one is created. > >> That is naturally only eye-candy to mask the problem that > >> primaries are always blanked-out when they are recreated and assigned > >> to a new Dxgk-Device elected as the current owner of the VidPn. > >> > >> At the fundamental level, the problem is the same as asking > >> if the memory manager of the OS could please give you > >> a page with its old content when you VirtualAlloc. > >> This would be a disclosure of content. > >> Also, even if you could get back some pages, there would > >> be no guarantee that the unchanged content is usable (because of > >> different swizzling formats, incompatible requirements of a scanout > >> source > >> and a scanout target when a new display comes-up, etc, etc). > >> > >> -- > >> > >> -- > >> 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 > >> > >> > >> "Shishir" <Shishir(a)discussions.microsoft.com> wrote in message > >> news:EEC8C807-7131-49F6-AF4D-20F66E15D455(a)microsoft.com... > >> > Hello, we are trying to programmtically blank display for a use case we > >> > have. > >> > > >> > This used to work in XP with the OCTL > >> > “IOCTL_VIDEO_SET_OUTPUT_DEVICE_POWER_STATE”. But this is deprecated in > >> > Vista > >> > and win7. > >> > > >> > Other methods of hooking, attaching a device to monitor stack etc. have > >> > been > >> > tried but they either blank the d3d surface as well, or bugcheck the > >> > system. > >> > > >> > The Wmi Provider for CIM_DesktopMonitor doesn't help as its underlying > >> > implementation in IRP_MJ_SYSTEM_CONTROL handler for monitor driver is > >> > not > >> > provided by Microsoft as of now. > >> > > >> > Trying to do it using Dxgi provided powerstate function either crashes > >> > or > >> > with help, balnks for a short time but turns it back on again. > >> > > >> > We would like to get a supported means of doing this. Appreciate if > >> > Micorosft could help. > >> > > >> > Thanks > >> > Shishir Pardikar > >> > Technology Strategist, > >> > Citrix Systems Inc., shishir.pardikar(a)citrix.com > >> > 425-895-4765 (O) > >> > > >> . > >> > . >
|
Next
|
Last
Pages: 1 2 Prev: Turn on verbose warnings in DDK compiler Next: Reading/Writing to PCI Config Space of PLX bridge |