Re[2]: VideoPortInt10 strange behaviour

Hello Calvin,

Friday, September 9, 2005, 6:53:14 PM, you wrote:

CG> A physical (as opposed to your virtual) miniport doesn’t turn off the
CG> monitor in this way. Doing so might well confuse the real miniport. I would
CG> suggest to use the vendor supplied API to work with stuff like playing with
CG> monitor, multiple desktop etc.

Problem that I need reasonably universal method for turning off
monitors in Windows.
And I do not have yet(?) access to vendor API to play.

CG> Also, try to avoid videoportint10 if all possible, it’s primarily for
CG> physical miniport which actually controls the hardware. video bios is
CG> implemented in that piece of hw. Even a physical miniport should not use
CG> videoportint10 if all possible. My previous employer even re-architect the
CG> driver-video bios interface for this.

CG> Calvin Guan (Windows DDK MVP)
CG> NetXtreme Longhorn Miniport Prime
CG> Broadcom Corp. www.broadcom.com

CG> ----- Original Message -----
CG> From: “Sergey Kipnis”
CG> To: “Windows System Software Devs Interest List”
CG> Sent: Friday, September 09, 2005 9:08 AM
CG> Subject: [ntdev] VideoPortInt10 strange behaviour

>> Hello,
>>
>> There is one absolutely wild thing I encountered.
>>
>> I have virtual display driver which may be used to turn off monitor using
>> VESA interface(through VideoPortInt10).
>>
>> Everything ok, but customer found one computer on which after changing
>> resolution situation changes terrible:
>>
>> - call from system DLL to VideoPortInt10 does nothing( nevertheles
>> VideoPortInt10 returns success)
>>
>> - call from application.exe to VideoPortInt10 does job - turn off
>> monitor( and VideoPortInt10 returns success too).
>>
>> Access in both cases is the same, i.e.
>> dc = CreateDC, ExtEscape(dc, OurCmd) =>
>> CallMiniport(IOCTL )=>VideoPortInt10
>>
>> –
>> Best regards,
>> Sergey mailto:kipnis@wp.pl
>>
>>
>> —
>> Questions? First check the Kernel Driver FAQ at
>> http://www.osronline.com/article.cfm?id=256
>>
>> You are currently subscribed to ntdev as: xxxxx@hotpop.com
>> To unsubscribe send a blank email to xxxxx@lists.osr.com
>>

CG> —
CG> Questions? First check the Kernel Driver FAQ at
CG> http://www.osronline.com/article.cfm?id=256

CG> You are currently subscribed to ntdev as: kipnis@wp.pl
CG> To unsubscribe send a blank email to
CG> xxxxx@lists.osr.com


Best regards,
Sergey mailto:kipnis@wp.pl

Doing it in user mode should be easy as pie. see WM_SYSCOMMAND,
SC_MONITORPOWER.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardaccelerators/keyboardacceleratorreference/keyboardacceleratormessages/wm_syscommand.asp

The CRTC controller is accessed by v-bios, hardware miniport driver and ACPI
firmware. In windows NT environment, OS and the video driver work together
to make sure they don’t fight.

In general, video bios service is mainly used for dos apps, ACPI or SMM
firmware (ACPI generate SMI, and SMM code could make int 10h call). Other
application should not do it. Real video driver for pre-LH OS’s can call int
10h, but it’s highly discouraged.

Calvin Guan (Windows DDK MVP)
NetXtreme Longhorn Miniport Prime
Broadcom Corp. www.broadcom.com

----- Original Message -----
From: “Sergey Kipnis”
To: “Windows System Software Devs Interest List”
Sent: Monday, September 12, 2005 9:19 AM
Subject: Re[2]: [ntdev] VideoPortInt10 strange behaviour

> Hello Calvin,
>
> Friday, September 9, 2005, 6:53:14 PM, you wrote:
>
> CG> A physical (as opposed to your virtual) miniport doesn’t turn off the
> CG> monitor in this way. Doing so might well confuse the real miniport. I
> would
> CG> suggest to use the vendor supplied API to work with stuff like playing
> with
> CG> monitor, multiple desktop etc.
>
> Problem that I need reasonably universal method for turning off
> monitors in Windows.
> And I do not have yet(?) access to vendor API to play.
>
> CG> Also, try to avoid videoportint10 if all possible, it’s primarily for
> CG> physical miniport which actually controls the hardware. video bios is
> CG> implemented in that piece of hw. Even a physical miniport should not
> use
> CG> videoportint10 if all possible. My previous employer even re-architect
> the
> CG> driver-video bios interface for this.
>
> CG> Calvin Guan (Windows DDK MVP)
> CG> NetXtreme Longhorn Miniport Prime
> CG> Broadcom Corp. www.broadcom.com
>
>
> CG> ----- Original Message -----
> CG> From: “Sergey Kipnis”
> CG> To: “Windows System Software Devs Interest List”
> CG> Sent: Friday, September 09, 2005 9:08 AM
> CG> Subject: [ntdev] VideoPortInt10 strange behaviour
>
>
>>> Hello,
>>>
>>> There is one absolutely wild thing I encountered.
>>>
>>> I have virtual display driver which may be used to turn off monitor
>>> using
>>> VESA interface(through VideoPortInt10).
>>>
>>> Everything ok, but customer found one computer on which after changing
>>> resolution situation changes terrible:
>>>
>>> - call from system DLL to VideoPortInt10 does nothing( nevertheles
>>> VideoPortInt10 returns success)
>>>
>>> - call from application.exe to VideoPortInt10 does job - turn off
>>> monitor( and VideoPortInt10 returns success too).
>>>
>>> Access in both cases is the same, i.e.
>>> dc = CreateDC, ExtEscape(dc, OurCmd) =>
>>> CallMiniport(IOCTL )=>VideoPortInt10
>>>
>>> –
>>> Best regards,
>>> Sergey mailto:kipnis@wp.pl
>>>
>>>
>>> —
>>> Questions? First check the Kernel Driver FAQ at
>>> http://www.osronline.com/article.cfm?id=256
>>>
>>> You are currently subscribed to ntdev as: xxxxx@hotpop.com
>>> To unsubscribe send a blank email to xxxxx@lists.osr.com
>>>
>
>
>
> CG> —
> CG> Questions? First check the Kernel Driver FAQ at
> CG> http://www.osronline.com/article.cfm?id=256
>
> CG> You are currently subscribed to ntdev as: kipnis@wp.pl
> CG> To unsubscribe send a blank email to
> CG> xxxxx@lists.osr.com
>
>
>
> –
> Best regards,
> Sergey mailto:kipnis@wp.pl
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@hotpop.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com