Requisitos de certificação de Aplicativos da Área de Trabalho do Windows

Versão do documento: 10

Data do documento: 29 de julho de 2015

Este documento contém os requisitos técnicos e qualificações de qualificação que um aplicativo de área de trabalho deve atender para participar do Programa de Certificação de Aplicativos da Área de Trabalho Windows 10.

Seja bem-vindo!

A plataforma Windows dá suporte a um amplo ecossistema de produtos e parceiros. Exibir o logotipo Windows em seu produto representa uma relação e um compromisso compartilhado com a qualidade entre a Microsoft e sua empresa. Os clientes confiam na marca Windows em seu produto porque ela garante que ela atenda aos padrões de compatibilidade e tenha um bom desempenho na plataforma Windows. Passar com êxito Windows Certificação de Aplicativo permite que seu aplicativo seja exibido no Centro de Compatibilidade Windows e você pode exibir o logotipo de certificação em seu site.

O Windows Programa de Certificação de Aplicativos é composto por requisitos técnicos e de programas para ajudar a garantir que aplicativos de terceiros que carregam a marca Windows sejam fáceis de instalar e confiáveis em computadores que executam Windows. Os clientes valorizam a estabilidade, a compatibilidade, a confiabilidade, o desempenho e a qualidade nos sistemas que compram. A Microsoft concentra seus investimentos para atender a esses requisitos para aplicativos de software projetados para serem executados na plataforma Windows para computadores. Esses esforços incluem testes de compatibilidade para consistência de experiência, melhor desempenho e segurança aprimorada em computadores que executam Windows software. Os testes de compatibilidade da Microsoft foram projetados em colaboração com parceiros do setor e são continuamente aprimorados em resposta aos desenvolvimentos do setor e à demanda do consumidor.

O Windows Kit de Certificação de Aplicativo é usado para validar a conformidade com esses requisitos e substitui as versões anteriores do kit usadas para validar no Windows 7, Windows 8 ou Windows 8.1. O Windows Kit de Certificação de Aplicativo é um dos componentes incluídos no SDK (Windows Software Development Kit) para Windows 10.

Qualificação do aplicativo

Para que um aplicativo se qualifique para Windows 10 Certificação de Aplicativo da Área de Trabalho, ele deve atender aos critérios a seguir e a todos os requisitos técnicos listados neste documento.

  • Deve ser um aplicativo autônomo
  • Ele deve ser executado em um computador Windows 10 local
  • Ele pode ser um componente cliente de um aplicativo Windows Server certificado
  • Ele deve ser o código e o recurso concluídos
  • Ele não deve se comunicar com aplicativos Windows Store por meio de mecanismos locais, inclusive por meio de arquivos e chaves do Registro, exceto nos cenários corporativos com suporte
  • Ele não deve comprometer ou comprometer a segurança ou a funcionalidade do sistema Windows
  • Ele deve ter um nome exclusivo e não deve ser marcado por outras pessoas
  • Todos os componentes externos devem ser certificados separadamente ou estar em conformidade com o kit de certificação de aplicativo Windows
  • Ele deve ter uma opção de opt-out para qualquer aplicativo empacotado

Se o aplicativo da área de trabalho for enviado para a categoria de produtos antivírus e/ou anti-spyware (ou seja, antimalware), ele deverá estar em conformidade com as DIRETRIZES DA PLATAFORMA ANTIMALWARE. O CONTRATO DE LISTAGEM E LICENÇA DE API ANTIMALWARE DO WINDOWS 10 deve ter sido assinado e em vigor antes do envio. O parceiro deve ser membro ou ter pesquisadores membros e em boa posição em uma das organizações listadas no contrato. A funcionalidade deve ser certificada em Windows 10 por uma das organizações listadas no contrato. O aplicativo deve ter sido testado pelo menos uma vez nos últimos 12 meses e certificado para detecção e limpeza.

1. Os aplicativos são compatíveis e resilientes

As horas em que um aplicativo falha ou para de responder causam muita frustração do usuário. Espera-se que os aplicativos sejam resilientes e estáveis e eliminar essas falhas ajude a garantir que o software seja mais previsível, mantenedível, performante e confiável.

1.1 Seu aplicativo não deve assumir uma dependência em modos de compatibilidade Windows, mensagem AppHelp e ou quaisquer outras correções de compatibilidade
1.2 Seu aplicativo deve ter um manifesto de compatibilidade e usar os GUIDs apropriados para as versões com suporte do Windows
1.3 Seu aplicativo deve estar ciente de DPI usando o manifesto do assembly do aplicativo em vez de chamar SetProcessDPIAware
1.4 Seu aplicativo não deve assumir uma dependência no runtime do VB6
1.5 Seu aplicativo não deve carregar DLLs arbitrárias para interceptar chamadas à API win32 usando HKLM\Software\Microsoft\Windows NT\CurrentVersion\Windows AppInit_dlls.

2. Os aplicativos devem aderir às práticas recomendadas de segurança Windows

Usar Windows práticas recomendadas de segurança ajudará a evitar a criação de exposição a superfícies de ataque Windows. Superfícies de ataque são os pontos de entrada que um invasor mal-intencionado poderia usar para explorar o sistema operacional aproveitando as vulnerabilidades no software de destino. Uma das piores vulnerabilidades de segurança é a elevação do privilégio.

Observe que os testes 2.1 2.6 são aplicáveis somente para aplicativos da área de trabalho testados no Windows 7, Windows 8 ou Windows 8.1.

2.1 Seu aplicativo deve usar ACLs fortes e apropriadas para proteger arquivos executáveis
2.2 Seu aplicativo deve usar ACLs fortes e apropriadas para proteger diretórios
2.3 Seu aplicativo deve usar ACLs fortes e apropriadas para proteger chaves do Registro
2.4 Seu aplicativo deve usar ACLs fortes e apropriadas para proteger diretórios que contêm objetos
2.5 Seu aplicativo deve reduzir o acesso de não administrador a serviços vulneráveis à violação
2.6 Seu aplicativo deve impedir que serviços com reinicializações rápidas reiniciem mais de duas vezes a cada 24 horas

Observação: o acesso só deve ser concedido às entidades que o exigem.

O Programa de Certificação de Aplicativos Windows verificará se Windows superfícies de ataque não estão expostas verificando se as ACLs e os Serviços são implementados de forma que não coloque o sistema Windows em risco.

3. Os aplicativos dão suporte Windows recursos de segurança

O sistema operacional Windows tem muitos recursos que dão suporte à segurança e privacidade do sistema. Os aplicativos devem dar suporte a esses recursos para manter a integridade do sistema operacional. Aplicativos compilados incorretamente podem causar sobrecargas de buffer que podem, por sua vez, causar negação de serviço ou permitir a execução de código mal-intencionado.

3.1 Seu aplicativo não deve usar AllowPartiallyTrustedCallersAttribute (APTCA) para garantir o acesso seguro a assemblies de nome forte
3.2 Seu aplicativo deve ser compilado usando o sinalizador /SafeSEH para garantir a manipulação de exceções seguras
3.3 Seu aplicativo deve ser compilado usando o sinalizador /NXCOMPAT para impedir a execução de dados
3.4 Seu aplicativo deve ser compilado usando o sinalizador /DYNAMICBASE para randomização de layout de espaço de endereço (ASLR)
3.5 Seu aplicativo não deve ler/gravar as seções pe compartilhadas

4. Os aplicativos devem aderir às mensagens do gerenciador de reinicialização do sistema

Quando os usuários iniciam o desligamento, eles geralmente têm um forte desejo de ver o desligamento bem-sucedido; eles podem estar com pressa para sair do escritório e só querem que seus computadores desliguem. Os aplicativos devem respeitar esse desejo não bloqueando o desligamento. Embora, na maioria dos casos, um desligamento possa não ser crítico, os aplicativos devem estar preparados para a possibilidade de um desligamento crítico.

4.1 Seu aplicativo deve lidar adequadamente com desligamentos críticos
Em um desligamento crítico, os aplicativos que retornam FALSE para WM_QUERYENDSESSION serão enviados WM_ENDSESSION e fechados, enquanto aqueles que atingem o tempo limite em resposta a WM_QUERYENDSESSION serão encerrados.

4.2 Um aplicativo de GUI deve retornar TRUE imediatamente em preparação para uma reinicialização
WM\_QUERYENDSESSION com LPARAM = ENDSESSION\_CLOSEAPP(0x1). Os aplicativos de console podem chamar SetConsoleCtrlHandler para especificar a função que manipulará as notificações de desligamento. Os aplicativos de serviço podem chamar RegisterServiceCtrlHandlerEx para especificar a função que receberá notificações de desligamento.
4.3 Seu aplicativo deve retornar 0 dentro de 30 segundos e desligar
WM\_ENDSESSION com LPARAM = ENDSESSION\_CLOSEAPP(0x1). No mínimo, o aplicativo deve se preparar salvando os dados do usuário e informando as informações necessárias após uma reinicialização.
4.4 Aplicativos de console que recebem a notificação ctrl\_C\_EVENT devem desligar imediatamente 4.5 Os drivers não devem vetar um evento de desligamento do sistema
Observação: os aplicativos que devem bloquear o desligamento devido a uma operação que não pode ser interrompida devem explicar o motivo para o usuário. Use ShutdownBlockReasonCreate para registrar uma cadeia de caracteres que explica o motivo para o usuário. Quando a operação for concluída, o aplicativo deverá chamar ShutdownBlockReasonDestroy para indicar que o sistema pode ser desligado.

5. Os aplicativos devem dar suporte a uma instalação limpa e reversível

Uma instalação limpa e reversível permite que os usuários gerenciem (implantar e remover) aplicativos com êxito em seus sistemas.

5.1 Seu aplicativo deve implementar corretamente uma instalação limpa e reversível
Se a instalação falhar, o aplicativo deverá ser capaz de revertê-lo e restaurar o computador para o estado anterior.

5.2 Seu aplicativo nunca deve forçar o usuário a reiniciar o computador imediatamente
Reiniciar o computador nunca deve ser a única opção no final de uma instalação, desinstalação ou atualização. Os usuários devem ter a oportunidade de reiniciar mais tarde.
5.3 Seu aplicativo nunca deve depender de 8.3 nomes de arquivos curtos (SFN) 5.4 Seu aplicativo nunca deve bloquear a instalação silenciosa/desinstalar 5.5 Seu instalador de aplicativo deve criar as entradas corretas do registro para permitir a detecção e desinstalação bem-sucedidas
Windows ferramentas de inventário e ferramentas de telemetria exigem informações completas sobre aplicativos instalados. Se você estiver usando um instalador baseado em MSI, o MSI criará automaticamente as entradas do Registro abaixo. Se você não estiver usando um instalador MSI, o módulo de instalação deverá criar as seguintes entradas do Registro durante a instalação:
  • DisplayName
  • InstallLocation
  • Publisher
  • UninstallString
  • VersionMajor ou MajorVersion
  • VersionMinor ou MinorVersion
5.6 O aplicativo deve remover todas as suas entradas de Adicionar/Remover Programas após a desinstalação

6. Os aplicativos devem assinar digitalmente arquivos e drivers

Uma assinatura digital Authenticode permite que os usuários verifiquem se o software é genuíno. Ele também permite detectar se um arquivo foi adulterado, como se tivesse sido infectado por um vírus. A imposição de assinatura de código no modo kernel é um recurso Windows conhecido como CI (integridade de código), que melhora a segurança do sistema operacional verificando a integridade de um arquivo sempre que a imagem do arquivo é carregada na memória. A CI detecta se o código mal-intencionado modificou um arquivo binário do sistema. Também gera um evento de log de diagnóstico e auditoria do sistema quando a assinatura de um módulo de kernel falha ao verificar corretamente.

6.1 Todos os arquivos executáveis (.exe, .dll, .ocx, .sys, .cpl, .drv, .scr) devem ser assinados com um certificado Authenticode
6.2 Todos os drivers do modo kernel instalados pelo aplicativo devem ter uma assinatura da Microsoft obtida por meio do programa de Certificação de Hardware Windows. Todos os drivers de filtro do Sistema de Arquivos devem ser assinados pela Microsoft.
6.3 Exceções e Renúncias
As renúncias serão consideradas apenas para redistribuíveis de terceiros não assinados, excluindo drivers. Uma prova de comunicação que solicita uma versão assinada dos redistribuíveis é necessária para que essa renúncia seja concedida.

7. Os aplicativos não bloqueiam a instalação ou a inicialização do aplicativo com base em uma verificação de versão do sistema operacional

É importante que os clientes não sejam artificialmente impedidos de instalar ou executar seu aplicativo quando não houver limitações técnicas. Em geral, se os aplicativos foram gravados para Windows Vista ou versões posteriores do Windows, eles não devem verificar a versão do sistema operacional.

7.1 Seu aplicativo não deve executar verificações de versão para igualdade
Se você precisar de um recurso específico, verifique se o recurso em si está disponível. Se precisar de Windows 7, verifique se há Windows 7 ou posterior (>= 6,2). Dessa forma, o código de detecção continuará a funcionar em versões futuras do Windows. Os instaladores de driver e os módulos de desinstalação nunca devem verificar a versão do sistema operacional.

7.2 Exceções e Renúncias serão consideradas para aplicativos que atendem aos critérios abaixo:
  • Os aplicativos que são entregues como um pacote que também são executados no Windows 7, Windows 8 e Windows 8.1 e precisam verificar a versão do sistema operacional para determinar quais componentes instalar em um determinado sistema operacional.
  • Aplicativos que verificam apenas a versão mínima do sistema operacional (somente durante a instalação, não em runtime) usando apenas as chamadas de API aprovadas e que listam corretamente o requisito mínimo de versão no manifesto do aplicativo.
  • Aplicativos de segurança (antivírus, firewall etc.), utilitários do sistema (por exemplo, desfragm, backups e ferramentas de diagnóstico) que verificam a versão do sistema operacional usando apenas as chamadas de API aprovadas.

8. Os aplicativos não carregam serviços ou drivers no modo de segurança

Cofre modo permite que os usuários diagnosticem e solucionem problemas Windows. Drivers e serviços não devem ser definidos para serem carregados no modo de segurança, a menos que sejam necessários para operações básicas do sistema, como drivers de dispositivo de armazenamento ou para fins de diagnóstico e recuperação, como scanners antivírus. Por padrão, quando Windows está no modo de segurança, ele inicia apenas os drivers e serviços que vieram pré-instalados com Windows.

  • 8.1 Exceções e Renúncias
    Drivers e serviços que devem ser iniciados no modo de segurança exigem uma renúncia. A solicitação de renúncia deve incluir cada driver ou gravação de serviço aplicável nas chaves do registro SafeBoot e descrever os motivos técnicos pelos quais o aplicativo ou serviço deve ser executado no modo de segurança. O instalador do aplicativo deve registrar todos esses drivers e serviços usando essas chaves do Registro:
    - HKLM/System/CurrentControlSet/Control/SafeBoot/Minimal - HKLM/System/CurrentControlSet/Control/SafeBoot/Network

Nota: Você deve testar esses drivers e serviços para garantir que eles funcionem no modo de segurança sem erros.

9. Os aplicativos devem seguir as diretrizes do Controle de Conta de Usuário

Alguns aplicativos Windows são executados no contexto de segurança de uma conta de administrador, e os aplicativos geralmente solicitam direitos excessivos de usuário e privilégios de Windows. Controlar o acesso aos recursos permite que os usuários estejam no controle de seus sistemas e os protejam contra alterações indesejadas. Uma alteração indesejada pode ser mal-intencionada, como um rootkit assumindo o controle do computador ou ser o resultado de uma ação feita por pessoas que têm privilégios limitados. A regra mais importante para controlar o acesso aos recursos é fornecer a menor quantidade de contexto de usuário padrão de acesso necessário para que um usuário execute suas tarefas necessárias. As diretrizes de controle de conta de usuário (UAC) a seguir fornecem a um aplicativo as permissões necessárias quando são necessárias pelo aplicativo, sem deixar o sistema constantemente exposto a riscos de segurança. A maioria dos aplicativos não exige privilégios de administrador em tempo de execução e deve ser apenas uma boa execução como um usuário padrão.

9.1 Seu aplicativo deve ter um manifesto que define os níveis de execução e informa ao sistema operacional quais privilégios o aplicativo requer para ser executado
A marcação de manifesto do aplicativo só se aplica a EXEs, não ADLs. Isso ocorre porque o UAC não inspeciona DLLs durante a criação do processo. Também vale a pena observar que as regras do UAC não se aplicam a serviços Microsoft. O manifesto pode ser inserido ou externo.
Para criar um manifesto, crie um arquivo com o nome <app_name>.exe.manifest e armazene-o no mesmo diretório que o EXE. Observe que qualquer manifesto externo será ignorado se o aplicativo tiver um manifesto interno. Por exemplo:
<requestedExecutionLevel level=""asInvoker | | mais altas disponíveis requireAdministrator"" uiAccess=""true|false""/>

9.2 O processo principal do aplicativo deve ser executado como um usuário padrão (asInvoker).
Todos os recursos administrativos devem ser movidos para um processo separado que é executado com privilégios administrativos. Aplicativos voltados para o usuário, como aqueles acessíveis por meio do grupo de programas no Menu Inicial, e que exigem elevação devem ser assinados pelo Authenticode.
9.3 Exceções e Renúncias
Uma renúncia é necessária para aplicativos que executam seu processo principal com privilégios elevados (requireAdministrator ou highestAvailable). O processo principal é identificado como o ponto de entrada do usuário para o aplicativo. As renúncias serão consideradas para os seguintes cenários:
  • Ferramentas administrativas ou do sistema com nível de execução definido como mais alto Disponível e/ou requireAdministrator
  • Somente o aplicativo de estrutura de automação de interface do usuário ou acessibilidade define o sinalizador uiAccess como true para ignorar o isolamento de privilégio de interface do usuário (UIPI). Para iniciar corretamente a utilização do aplicativo, esse sinalizador deve ser assinado pelo Authenticode e deve residir em um local protegido no sistema de arquivos, ou seja, Arquivos de Programas.

10. Os aplicativos devem ser instalados nas pastas corretas por padrão

Os usuários devem ter uma experiência consistente e segura com o local de instalação padrão dos arquivos, mantendo a opção de instalar um aplicativo no local de sua escolha. Também é necessário armazenar dados do aplicativo no local correto para permitir que várias pessoas usem o mesmo computador sem corromper ou substituir dados e configurações uns dos outros. Windows fornece locais específicos no sistema de arquivos para armazenar programas e componentes de software, dados de aplicativo compartilhados e dados de aplicativo específicos para um usuário

10.1 Seu aplicativo deve ser instalado na pasta Arquivos de Programas por padrão
Para aplicativos nativos de 32 bits e 64 bits em %ProgramFiles, e %ProgramFiles(x86)% para aplicativos de 32 bits em execução no x64. Dados do usuário ou dados do aplicativo nunca devem ser armazenados nesse local devido às permissões de segurança configuradas para essa pasta.

10.2 Seu aplicativo deve evitar iniciar automaticamente na inicialização
Por exemplo, seu aplicativo não deve definir nenhum destes procedimentos;
  • HKLM de chaves de execução do Registro e, ou HKCU em Software\Microsoft\Windows\CurrentVersion
  • HKLM de chaves de execução do Registro e ou HKCU em Software\Wow6432Node\Microsoft\windows\CurrentVersion
  • Iniciar Menu AllPrograms > STARTUP
10.3 Os dados do aplicativo, que devem ser compartilhados entre os usuários no computador, devem ser armazenados no ProgramData 10.4 Os dados do aplicativo que são exclusivos de um usuário específico e que não devem ser compartilhados com outros usuários do computador devem ser armazenados em Usuários\\<nome de usuário>\\AppData 10.5 Seu aplicativo nunca deve gravar diretamente no diretório "Windows" e ou subdiretórios
Use os métodos corretos para instalar arquivos, como fontes ou drivers.
10.6 Seu aplicativo deve gravar dados do usuário na primeira execução e não durante a instalação em instalações por computador
Quando o aplicativo é instalado, não há um local de usuário correto no qual armazenar dados. As tentativas de um aplicativo de modificar comportamentos de associação padrão em um nível de computador após a instalação não terão êxito. Em vez disso, os padrões devem ser reivindicados em um nível por usuário, o que impede que vários usuários substituam os padrões uns dos outros.
10.7 Exceções e Renúncias
Uma renúncia é necessária para aplicativos que gravam no cache de assembly global (GAC) aplicativos .NET devem manter as dependências de assembly privadas e armazená-la no diretório do aplicativo, a menos que o compartilhamento de um assembly seja explicitamente necessário.

11. Os aplicativos devem dar suporte a sessões de vários usuários

Windows usuários devem ser capazes de executar sessões simultâneas sem conflitos ou interrupções.

11.1 Seu aplicativo deve garantir que, ao ser executado em várias sessões local ou remotamente, a funcionalidade normal do aplicativo não seja afetada negativamente
11.2 As configurações e os arquivos de dados do aplicativo não devem persistir entre os usuários
11.3 A privacidade e as preferências do usuário devem ser isoladas na sessão do usuário
11.4 As instâncias do aplicativo devem ser isoladas umas das outras
Isso significa que os dados do usuário de uma instância não estão visíveis para outra instância do aplicativo. O som em uma sessão de usuário inativa não deve ser ouvido em uma sessão de usuário ativa. Nos casos em que várias instâncias de aplicativo usam recursos compartilhados, o aplicativo deve garantir que não haja conflito.

11.5 Os aplicativos instalados para vários usuários devem armazenar dados nas pastas corretas e nos locais do Registro
Consulte os requisitos da UAC.
11.6 Os aplicativos de usuário devem ser capazes de ser executados em várias sessões de usuário (Comutação rápida de usuário) para acesso local e remoto 11.7 Seu aplicativo deve verificar outras sessões de TS (serviço de terminal) para instâncias existentes do aplicativo
Nota: Se um aplicativo não der suporte a várias sessões de usuário ou acesso remoto, ele deverá indicar claramente isso quando iniciado a partir desse tipo de sessão.

12. Os aplicativos devem dar suporte a versões x64 de Windows

À medida que o hardware de 64 bits se torna mais comum, os usuários esperam que os desenvolvedores de aplicativos aproveitem os benefícios da arquitetura de 64 bits migrando seus aplicativos para 64 bits ou que as versões de 32 bits do aplicativo sejam executadas bem abaixo das versões de 64 bits de Windows.

12.1 Seu aplicativo deve dar suporte nativo a 64 bits ou, no mínimo, aplicativos baseados em Windows de 32 bits devem ser executados diretamente em sistemas de 64 bits para manter a compatibilidade com versões de 64 bits de Windows
12.2 Seu aplicativo e seus instaladores não devem conter nenhum código de 16 bits ou depender de nenhum componente de 16 bits
12.3 A instalação do aplicativo deve detectar e instalar os drivers e componentes adequados para a arquitetura de 64 bits
12.4 Todos os plug-ins de shell devem ser executados em versões de 64 bits do Windows
12.5 O aplicativo em execução no emulador WoW64 não deve tentar subverter ou ignorar mecanismos de virtualização wow64
Se houver cenários específicos em que os aplicativos precisam detectar se estão em execução no emulador WoW64, eles devem fazê-lo chamando IsWow64Process.

Conclusão

À medida que esses requisitos evoluem, observaremos as alterações no histórico de revisão abaixo. Requisitos estáveis são fundamentais para fazer o seu melhor trabalho, portanto, pretendemos garantir que as alterações feitas sejam sustentáveis e continuem a proteger e aprimorar seus aplicativos.

Obrigado novamente por ingressar em nosso compromisso de oferecer ótimas experiências ao cliente.

Histórico de revisão

Data Versão Descrição da revisão Link para o documento
20 de dezembro de 2011 1,0 Rascunho inicial do documento para Versão Prévia.
26 de janeiro de 2012 1,1 Atualize para a seção nº 2. 1.1
31 de maio de 2012 1,2 Adição dos resultados do teste de resumo 1.2
29 de junho de 2012 3.0 Windows 8 documento final 3.0
18 de junho de 2013 3.1 Windows 8.1 documento 3.1
20 de fevereiro de 2014 3.2 Atualização interna
18 de março de 2014 3.3 Windows 8.1 Update 1 3.3
29 de julho de 2015 10 Atualização Windows 10 10

Saiba mais sobre a certificação de aplicativos da área de trabalho

Requisito Descrição
Compatibilidade e resiliência Falhas & travamentos são uma grande interrupção para os usuários e causam frustração. Espera-se que os aplicativos sejam resilientes e estáveis, eliminar essas falhas ajuda a garantir que o software seja mais previsível, mantenedível, com desempenho e confiável.
O ponto de entrada do aplicativo voltado para o usuário deve ser manifestado para compatibilidade, bem como declarar o GUID correto.
Os pontos de entrada de aplicativo voltados para o usuário devem ser manifestados para reconhecimento de ALTA DPI e que as APIs adequadas estão sendo chamadas para dar suporte a HIGH-DPI.
Para obter mais informações, consulte:
Aderir às práticas recomendadas de Segurança do Windows Usar Windows práticas recomendadas de segurança ajudará a evitar a criação de exposição a superfícies de ataque Windows. Superfícies de ataque são os pontos de entrada que um invasor mal-intencionado pode usar para explorar o sistema operacional aproveitando as vulnerabilidades no software de destino. Uma das piores vulnerabilidades de segurança é a elevação do privilégio.
Para obter mais informações, consulte:
Recursos de Segurança do Windows de suporte O sistema operacional Windows implementou muitas medidas para dar suporte à segurança e privacidade do sistema. Os aplicativos devem dar suporte a essas medidas para manter a integridade do sistema operacional. Aplicativos compilados incorretamente podem causar sobrecargas de buffer que, por sua vez, podem causar negação de serviço ou fazer com que o código mal-intencionado seja executado. Para obter mais informações, consulte a referência da ferramenta BinScope.
Aderir às mensagens do Gerenciador de Reinicialização do Sistema Quando os usuários iniciam o desligamento, na grande maioria dos casos, eles têm um forte desejo de ver o desligamento bem-sucedido; eles podem estar com pressa para sair do escritório e "apenas querem" que seus computadores desativem. Os aplicativos devem respeitar esse desejo não bloqueando o desligamento. Embora, na maioria dos casos, um desligamento possa não ser crítico, os aplicativos devem estar preparados para a possibilidade de um desligamento crítico.
Limpar instalação reversível Uma instalação limpa, reversível, permite que os usuários gerenciem (implantar e remover) aplicativos com êxito em seus sistemas. Para obter mais informações, consulte Como instalar pré-requisitos com um aplicativo ClickOnce.
Assinar digitalmente arquivos e drivers Uma assinatura digital do Authenticode permite que os usuários verifiquem se o software é original. Ele também permite que se detecte se um arquivo foi adulterado, por exemplo, se ele foi infectado por um vírus. A imposição de assinatura de código no modo kernel é um recurso de Windows conhecido como CI (integridade de código), que melhora a segurança do sistema operacional verificando a integridade de um arquivo sempre que a imagem do arquivo é carregada na memória. A CI detecta se o código mal-intencionado modificou um arquivo binário do sistema. Também gera um evento de log de diagnóstico e auditoria do sistema quando a assinatura de um módulo de kernel falha ao verificar corretamente.
Não bloquear a instalação ou a inicialização do aplicativo com base na verificação de versão do sistema operacional É importante que os clientes não sejam artificialmente impedidos de instalar ou executar seu aplicativo quando não houver limitações técnicas. Em geral, se os aplicativos foram gravados para Windows Vista ou versões posteriores, eles não devem ter motivos para verificar a versão do sistema operacional. Para obter mais informações, consulte o Controle de Versão do Sistema Operacional.
Não carregar serviços e drivers no modo Cofre Cofre modo permite que os usuários diagnosticem e solucionem problemas Windows. A menos que seja necessário para operações básicas do sistema (por exemplo, drivers de dispositivo de armazenamento) ou para fins de diagnóstico e recuperação (por exemplo, scanners antivírus), os drivers e os serviços não devem ser definidos para serem carregados no modo de segurança. Por padrão, o modo de segurança não inicia a maioria dos drivers e serviços que não vieram pré-instalados com Windows. Eles devem permanecer desabilitados, a menos que o sistema os exija para operações básicas ou para fins de diagnóstico e recuperação.
Para obter mais informações, consulte:
Siga as diretrizes do UAC (Controle de Conta de Usuário) Alguns Windows aplicativo são executados no contexto de segurança de uma conta de administrador e muitos exigem direitos excessivos de usuário e privilégios de Windows. Controlar o acesso aos recursos permite que os usuários estejam no controle de seus sistemas contra alterações indesejadas (Uma alteração indesejada pode ser mal-intencionada, como um rootkit assumindo furtivamente o computador ou uma ação de pessoas que têm privilégios limitados, por exemplo, um funcionário instalando software proibido em um computador de trabalho). A regra mais importante para controlar o acesso aos recursos é fornecer a menor quantidade de contexto de usuário padrão de acesso necessário para que um usuário execute suas tarefas necessárias. As diretrizes de UAC a seguir fornecem ao aplicativo as permissões necessárias quando necessário, sem deixar o sistema constantemente exposto a riscos de segurança.
Para obter mais informações, consulte:
Instalar nas pastas corretas por padrão Os usuários devem ter uma experiência consistente e segura com o local de instalação padrão dos arquivos, mantendo a opção de instalar um aplicativo no local escolhido. Também é necessário armazenar dados do aplicativo no local correto para permitir que várias pessoas usem o mesmo computador sem corromper ou substituir dados e configurações uns dos outros. Para obter mais informações, confira o resumo dos requisitos de instalação/desinstalação.
Suporte a sessões de vários usuários Windows usuários devem ser capazes de executar sessões simultâneas sem conflitos ou interrupções. Para obter mais informações, consulte diretrizes de programação dos Serviços de Área de Trabalho Remota.
Suporte a versões x64 do Windows À medida que o hardware de 64 bits se torna mais prevalente, os usuários esperam que os desenvolvedores de aplicativos aproveitem os benefícios da arquitetura de 64 bits migrando seus aplicativos para 64 bits ou que as versões de 32 bits do aplicativo sejam executadas bem abaixo das versões de 64 bits de Windows.

Confira também