Esta questão é especificamente sobre o Windows Embedded Standard 7, mas acredito que também seja relevante para o Windows 7 não incorporado. Estou usando um i7-2600 / i7-2600K com gráficos Intel HD2000 / HD3000.
No Windows 7 (possivelmente outros também?) pode ocorrer um popup perguntando "Você deseja alterar o esquema de cores para melhorar o desempenho?" Alguns detalhes em this question .
O que me interessa não é um método para suprimir o pop-up, mas uma maneira de acionar o pop-up on demand. Me ouça: estamos usando o WES7 para um produto incorporado para o qual nenhum pop-up é aceitável (o usuário pode não ter mouse para dispensá-los e pode ser necessário reiniciar a máquina como resultado) e houve relatos de que esse pop-up ocorreu muito ocasionalmente . O plano é consertar o que está causando o popup, e também suprimir o próprio popup, mesmo se houver algum problema. A fim de corrigir o problema subjacente (Alguns bug em nosso aplicativo? Falta de algum recurso? Uso indevido de GPU?) Seria útil saber exatamente o estado (s) pode causar o pop-up. E, para ter certeza absoluta de que o pop-up é suprimido, seria útil ativá-lo de maneira confiável.
Então, qual estado, exatamente, dispara esse pop-up? Foi sugerido que está diretamente relacionado à memória da GPU. Nesse link, há um experimento em que eles abrem muitos aplicativos e assistem à ascensão da memória gpu (dinâmica). No entanto, eles também mencionam que, no caso deles, em vez de obter o pop-up, o Windows apenas muda para o esquema de cores básico automaticamente sem aviso prévio. Quando reproduzi o experimento, encontrei a mesma coisa - o Windows desativou o Aero sem aviso ou pop-up.
Eu também escrevi um pequeno aplicativo WPF projetado para consumir memória dinâmica de GPU que abre e fecha muitas janelas contendo bitmaps. Com certeza, a memória dinâmica do GPU aumenta constantemente até que, eventualmente, o Windows desligue o Aero sem aviso ou popup. Isso aconteceu no meu caso quando cheguei ao limite máximo (~ 1650MB)
Consegui consumir memória GPU dedicada conectando telas e configurando-as para uma resolução muito alta. Mais uma vez, a memória dedicada aumentaria e o Windows desabilitaria o Aero automaticamente, sem aviso ou popup, quando chegasse perto do limite. (64MB no meu caso)
Eu sei que o popup pode ocorrer nessa combinação de hardware e imagem do WES7, mas não consigo fazer isso acontecer. De minhas experiências, parece não estar diretamente ligado a algum limite na memória da GPU (dedicado ou dinâmico), parece que há algum outro fator.
Também tivemos uma instância de parte do nosso aplicativo parando de responder ao mesmo tempo em que aparece o pop-up, portanto, qualquer informação sobre as condições que podem produzir o pop-up pode ser uma pista do que causou esse travamento. Possivelmente.
Alguém tem um método confiável de acionar o pop-up em sua máquina, em vez de o Windows apenas desabilitar o Aero automaticamente? Alguém sabe exatamente quais condições causam o pop-up, diferentemente da desabilitação automática do Aero?