Тесты комплекта сертификации приложений Для Windows
Ниже приведены сведения о тестировании классических приложений. Дополнительные сведения см. в с помощью комплекта сертификации приложений Windows.
- Очистка обратимой установки
- Установка в правильные папок
- тестового файла с цифровой подписью
- Поддержка тестов windows x64
- проверки версий ОС
- тест управления учетными записями пользователей (UAC)
- придерживаться сообщений диспетчера перезагрузки системы
- тестирование в безопасном режиме
- теста сеанса с несколькими сеансами
- аварийное завершение работы и зависание тестов
- проверки совместимости и устойчивости
- рекомендации по обеспечению безопасности Windows
- функции безопасности Windows
- тест высокой DPI
Очистка обратимой установки
Устанавливает и удаляет приложение и проверяет наличие остаточных файлов и записей реестра.
- Фон
- Чистая, обратимая установка позволяет пользователям развертывать и удалять приложения. Чтобы пройти этот тест, приложение должно выполнить следующее:
- Приложение не принудительно перезапускает систему сразу после установки или удаления приложения. Процесс установки или удаления приложения никогда не должен требовать перезагрузки системы сразу после завершения работы. Если для этого требуется перезапуск системы, пользователи должны иметь возможность перезапустить систему в удобном состоянии.
- Приложение не зависит от имен коротких файлов 8.3 (SFN). процессы установки и удаления приложения должны использовать длинные имена файлов и пути к папкам.
- Приложение не блокирует автоматическую установку и удаление
- Приложение делает необходимые записи в системном реестре. Средства инвентаризации Windows и средства телеметрии требуют полных сведений об установленных приложениях. Установщики приложений должны создавать правильные записи реестра, чтобы разрешить успешное обнаружение и удаление.
- Если вы используете установщик на основе MSI, MSI автоматически создает записи реестра ниже. Если вы не используете установщик MSI, модуль установки должен создать следующие записи реестра во время установки:
- DisplayName
- InstallLocation
- Издатель
- УдалениеString
- VersionMajor или MajorVersion
- VersionMinor или MinorVersion
- Приложение должно удалить все записи в разделе "Добавление и удаление программ".
- Чистая, обратимая установка позволяет пользователям развертывать и удалять приложения. Чтобы пройти этот тест, приложение должно выполнить следующее:
- Сведения о тестировании
- Этот тест проверяет процессы установки и удаления приложения для требуемого поведения.
- Исправление действия
- Просмотрите дизайн и поведение приложения в соответствии с описанными выше требованиями.
Установка на правильный тест папок
Проверяет, записывает ли приложение свои программы и файлы данных в правильные папки.
- Фон
- Приложения должны правильно использовать систему пользователей и папки для каждого пользователя, чтобы он смог получить доступ к данным и параметрам, которым он нужен, при защите данных и параметров пользователя от несанкционированного доступа.
- Папки Program Files
- Приложение должно быть установлено в папке Program Files по умолчанию (%ProgramFiles% для собственных 32-разрядных и 64-разрядных приложений, а %ProgramFiles(x86)% для 32-разрядных приложений, работающих в x64-
- Примечание. приложение не должно хранить данные пользователя или данные приложения в папке Program Files из-за разрешений безопасности, настроенных для этой папки.
- Списки управления доступом в системных папках Windows позволяют только учетным записям администратора читать и записывать их. В результате учетные записи стандартных пользователей не будут иметь доступа к этим папкам. Однако виртуализация файлов позволяет приложениям хранить файл, например файл конфигурации, в системном расположении, которое обычно записывается только администраторами. Выполнение программ в качестве стандартного пользователя в этой ситуации может привести к сбою, если он не может получить доступ к требуемому файлу.
- Приложения должны использовать известные папки, чтобы обеспечить доступ к данным.
- Примечание. Windows обеспечивает виртуализацию файлов для улучшения совместимости приложений и устранения проблем при запуске приложений в качестве стандартного пользователя в Windows. Приложение не должно полагаться на виртуализацию в будущих версиях Windows.
- Папки данных приложения для конкретных пользователей
- В установках "на компьютере" приложение не должно записывать данные, относящиеся к пользователю во время установки. Данные установки, относящиеся к пользователю, должны записываться только при первом запуске приложения. Это связано с отсутствием правильного расположения пользователя для хранения данных во время установки. Попытки приложения изменить поведение сопоставлений по умолчанию на уровне компьютера после установки будут неудачными. Вместо этого необходимо запросить значения по умолчанию на уровне пользователя, что предотвращает перезапись нескольких пользователей по умолчанию.
- Все данные приложения, эксклюзивные для конкретного пользователя, и не предоставлять доступ другим пользователям компьютера, должны храниться в user\<имени пользователя>\AppData.
- Все данные приложения, которые должны быть общими для пользователей на компьютере, должны храниться в ProgramData.
- Другие системные папки и разделы реестра
- Приложение никогда не должно записывать непосредственно в каталог Windows и вложенные каталоги. Используйте правильные методы для установки файлов, таких как шрифты или драйверы, в эти каталоги.
- Приложения не должны запускаться автоматически при запуске, например путем добавления записи в одно или несколько из следующих расположений:
- Разделы запуска реестра HKLM и HKCU в разделе Software\Microsoft\Windows\CurrentVersion
- Разделы запуска реестра HKLM и HKCU в программе\Wow6432Node\Microsoft\windows\CurrentVersion
- Пуск меню AllPrograms > STARTUP
- Сведения о тестировании
- Этот тест проверяет, использует ли приложение определенные расположения в файловой системе, которые Windows предоставляет для хранения программ и компонентов программного обеспечения, общих данных приложения и данных приложения, относящихся к пользователю.
- Корректирующие действия
- Просмотрите, как приложение использует папки системы и убедитесь, что они используются правильно.
- Исключения и отказы
- Отказ требуется для классических приложений, записывающихся в глобальный кэш сборок (GAC) (приложения .NET, должны сохранять зависимости сборок закрытыми и хранить их в каталоге приложения, если только не требуется предоставление общего доступа к сборке).
- Установка в папку "Файлы программ" не является требованием для пакетов SW для настольных компьютеров для достижения логотипа SW только в категории "Основы SW".
Проверка файлов с цифровой подписью
Проверяет исполняемые файлы и драйверы устройств, чтобы убедиться, что они имеют допустимую цифровую подпись.
- Фон
- Файлы с цифровой подписью позволяют проверить подлинность файла и определить, был ли файл изменен.
- Принудительное применение подписывания кода в режиме ядра — это функция Windows, которая также называется целостностью кода (CI). CI повышает безопасность Windows, проверяя целостность файла при каждой загрузке в память. CI обнаруживает, изменил ли вредоносный код двоичный файл системы и создает событие журнала диагностики и системного аудита, когда подпись модуля ядра завершается ошибкой правильной проверки.
- Если приложению требуются повышенные разрешения, запрос на повышение прав отображает контекстные сведения о исполняемом файле, который запрашивает повышенный доступ. В зависимости от того, подписано ли приложение Authenticode, пользователь может увидеть запрос согласия или запрос учетных данных.
- Надежные имена не позволяют сторонним лицам подделывать код, если вы защищаете закрытый ключ. Платформа .NET Framework проверяет цифровую подпись при загрузке сборки или установке ее в GAC. Без доступа к закрытому ключу злоумышленник не может изменить код и снова подписать его.
- Сведения о тестировании
- Все исполняемые файлы, такие как расширения файлов .exe, .dll, ocx, .sys, .cpl, DRV и SCR, должны быть подписаны с помощью сертификата Authenticode.
- Все драйверы режима ядра, установленные приложением, должны иметь подпись Майкрософт, полученную с помощью программы WHQL или DRS. Все драйверы фильтров файловой системы должны быть подписаны WHQL.
- Исправление действия
- Подписывая исполняемые файлы приложения.
- Используйте makecert.exe для создания сертификата или получения ключа подписывания кода из одного из коммерческих центров сертификации (ЦС), таких как VeriSign, Thawte или ЦС Майкрософт.
- Исключения и отказы
- Отказы будут считаться только для неподписанных сторонних распространяемых компонентов. Для предоставления этого отказа требуется подтверждение связи, запрашивающей подписанную версию распространяемых компонентов.
- Пакеты программного обеспечения, добавленные для устройств, освобождаются от сертификации драйверов в режиме ядра, так как драйверы должны быть сертифицированы сертификацией оборудования Windows.
Поддержка теста Windows x64
Протестируйте приложение, чтобы убедиться, что .exe создан для архитектуры платформы, на которую она будет установлена.
- Фон
- Исполняемый файл должен быть создан для архитектуры процессора, на которой она установлена. Некоторые исполняемые файлы могут выполняться в другой архитектуре процессора, но это не является надежным.
- Совместимость архитектуры важна, так как 32-разрядные процессы не могут загружать 64-разрядные библиотеки DLL и 64-разрядные процессы не могут загружать 32-разрядные библиотеки DLL. Аналогичным образом 64-разрядные версии Windows не поддерживают 16-разрядные приложения под управлением Windows, так как дескриптор имеет 32 существенных бита в 64-разрядной версии Windows, чтобы они не могли передаваться в 16-разрядные приложения. Поэтому попытка запустить 16-разрядное приложение завершится ошибкой в 64-разрядных версиях Windows.
- 32-разрядные драйверы устройств не могут работать в 64-разрядных версиях Windows, поэтому их необходимо перенести в 64-разрядную архитектуру.
- Для приложений пользовательского режима 64-разрядная версия Windows включает WOW64, что позволяет 32-разрядным приложениям Windows выполняться в системах под управлением 64-разрядных Windows, хотя и с некоторой потерей производительности. Для драйверов устройств нет эквивалентного уровня перевода.
- Для обеспечения совместимости с 64-разрядными версиями Windows приложения должны изначально поддерживать 64-разрядные приложения или, как минимум, 32-разрядные приложения на основе Windows должны работать без проблем в 64-разрядных системах:
- Приложения и их установщики не должны содержать 16-разрядный код или полагаться на любой 16-разрядный компонент.
- Программа установки приложений должна обнаруживать и устанавливать соответствующие драйверы и компоненты в 64-разрядных версиях Windows.
- Все подключаемые модули оболочки должны работать в 64-разрядных версиях Windows.
- Приложения, выполняемые в эмуляторе WoW64, не должны пытаться обойти механизмы виртуализации Wow64. Если существуют определенные сценарии, в которых приложениям необходимо определить, работают ли они в эмуляторе WoW64, они должны сделать это путем вызова IsWow64Process.
- Сведения о тестировании
- Приложение не должно устанавливать 16-разрядные двоичные файлы. Приложение не должно устанавливать 32-разрядный драйвер режима ядра, если он должен работать на 64-разрядном компьютере.
- Корректирующие действия
- Создайте исполняемые файлы и драйверы для архитектуры процессора, для которой требуется установить их.
Проверка версии ОС
Проверяет, как приложение проверяет версию Windows, в которой она работает.
- Фон
- Приложения проверяют версию ОС, тестируя версию, которая больше или равна требуемой версии, чтобы обеспечить совместимость с будущими версиями Windows.
- Сведения о тестировании
- Имитирует запуск приложения в разных версиях Windows, чтобы узнать, как он реагирует.
- Корректирующие действия
- Проверьте правильную версию Windows, проверив, если текущая версия больше или равна версии приложения, службы или драйвера.
- Установщики драйверов и модули удаления никогда не должны проверять версию ОС.
- Исключения и отказы
- Отказы будут рассматриваться для приложений, которые соответствуют следующим критериям: (применяется только к сертификации классических приложений)
- Приложения, которые доставляются в виде одного пакета, работающего в Windows XP, Windows Vista и Windows 7, и должны проверить версию ОС, чтобы определить, какие компоненты необходимо установить в данной операционной системе.
- Приложения, которые проверяют только минимальную версию ОС (только во время установки, а не во время выполнения) с помощью только утвержденных вызовов API и перечисляют минимальные требования к версии в манифесте приложения по мере необходимости.
- Приложения безопасности, такие как антивирусная программа и брандмауэр, системные служебные программы, такие как служебные программы дефрагментации и приложения резервного копирования, а также средства диагностики, которые проверяют версию ОС, используя только утвержденные вызовы API.
- Отказы будут рассматриваться для приложений, которые соответствуют следующим критериям: (применяется только к сертификации классических приложений)
Тест управления учетными записями пользователей (UAC)
Проверяет приложение, чтобы убедиться, что для запуска не требуется ненужные повышенные разрешения.
- Фон
- Приложение, которое работает или устанавливает только в том случае, если пользователь является администратором, заставляет пользователей запускать приложение с ненужными повышенными разрешениями, что может позволить вредоносным программам входить на компьютер пользователя.
- Когда пользователи всегда вынуждены запускать приложения с маркерами доступа с повышенными привилегиями, приложение может серверировать в качестве точки входа для обманчивого или вредоносного кода. Эта вредоносная программа может легко изменить операционную систему или хуже, повлиять на других пользователей. Практически невозможно контролировать пользователя с полным доступом администратора, так как администраторы могут устанавливать приложения и запускать приложения или скрипты на компьютере. ИТ-менеджеры всегда ищут способы создания "стандартных рабочих столов", где пользователи входят в систему как стандартные пользователи. Стандартные настольные компьютеры значительно снижают затраты на службу поддержки и сокращают затраты на ИТ.
- Большинство приложений не требуют прав администратора во время выполнения. Учетная запись стандартного пользователя должна иметь возможность запускать их. Приложения Windows должны иметь манифест (внедренный или внешний), чтобы определить уровень выполнения, который сообщает ОС привилегии, необходимые для запуска приложения. Манифест приложения применяется только к файлам .exe, а не к файлам .dll. Контроль учетных записей пользователей (UAC) не проверяет библиотеки DLL во время создания процесса. Правила UAC не применяются к службам Майкрософт. Манифест приложения может быть внедрен или внешний.
- Чтобы создать манифест, создайте файл с именем <app_name>.exe.manifest и сохраните его в том же каталоге, что и EXE. Обратите внимание, что любой внешний манифест игнорируется, если у приложения есть внутренний манифест.
- Например, <запрошенный уровеньExecutionLevel="asInvoker | highestAvailable | requireAdministrator"" uiAccess=""true|false"/>
- Основной процесс приложения должен выполняться как стандартный пользователь (asInvoker). Все административные функции должны быть перемещены в отдельный процесс, который выполняется с правами администратора.
- Пользователям, которые требуют повышенных привилегий, должны быть подписаны Authenticode.
- Сведения о тестировании
- Все пользовательские exes должны быть помечены атрибутом asInvoker. Если они помечены как самый высокий или требуетсяAdministrator, они должны быть правильно подписаны authenticode. Любой exe-файл приложения не должен иметь атрибут uiAccess, равный true. Любой exe-файл, который выполняется как услуга, исключается из этой конкретной проверки.
- Корректирующие действия
- Просмотрите файл манифеста приложения для правильных записей и уровней разрешений.
- Исключения и отказы
- Отказ требуется для приложений, выполняющих свой основной процесс с повышенными привилегиями (требуется или с высоким уровнем). Основной процесс — это процесс, предоставляющий пользователю точку входа в приложение.
- Отказы будут рассматриваться в следующих сценариях:
- Средства администрирования или системы с уровнем выполнения, равные , требуетсяAdministrator или оба.
- Только приложение специальных возможностей или платформы автоматизации пользовательского интерфейса задает флаг uiAccess значение TRUE, чтобы обойти изоляцию привилегий пользовательского интерфейса (UIPI). Чтобы правильно запустить использование приложения, этот флаг должен быть подписан Authenticode и должен находиться в защищенном расположении в файловой системе, например Program Files.
Придерживаться сообщений диспетчера перезагрузки системы
Проверяет, как приложение реагирует на завершение работы системы и перезапуск сообщений.
- Фон
- Приложения должны выйти как можно быстрее, когда они уведомляются о завершении работы системы, чтобы обеспечить быстрое завершение работы или выключение питания для пользователя.
- При критическом завершении работы приложения, возвращающие WM_QUERYENDSESSION false, будут отправлены WM_ENDSESSION и закрыты, а время ожидания в ответ на WM_QUERYENDSESSION будет принудительно прекращено.
- Сведения о тестировании
- Проверяет, как приложение реагирует на завершение работы и выход из сообщений.
- Корректирующие действия
- Если приложение завершается сбоем этого теста, просмотрите способ обработки этих сообщений Windows:
- WM_QUERYENDSESSION с LPARAM = ENDSESSION_CLOSEAPP(0x1): классические приложения должны немедленно реагировать (TRUE) при подготовке к перезапуску. Консольные приложения могут вызывать SetConsoleCtrlHandler для получения уведомления о завершении работы. Службы могут вызывать RegisterServiceCtrlHandlerEx для получения уведомлений о завершении работы в подпрограмме обработчика.
- WM_ENDSESSION с LPARAM = ENDSESSION_CLOSEAPP(0x1): приложения должны возвращать значение 0 в течение 30 секунд и завершить работу. Как минимум, приложения должны подготовиться, сохраняя все пользовательские данные и указав необходимые сведения после перезапуска.
- Консольные приложения, получающие уведомление CTRL_C_EVENT, должны немедленно завершить работу. Драйверы не должны вето на событие завершения работы системы.
- Примечание. Приложения, которые должны блокировать завершение работы из-за операции, которая не может быть прервана, должна использовать ShutdownBlockReasonCreate для регистрации строки, объясняющей причину пользователю. По завершении операции приложение должно вызвать ShutdownBlockReasonDesk, чтобы указать, что система может быть завершена.
- Если приложение завершается сбоем этого теста, просмотрите способ обработки этих сообщений Windows:
Тест в безопасном режиме
Проверяет, настроен ли драйвер или служба на запуск в безопасном режиме.
- Фон
- Безопасный режим позволяет пользователям диагностировать и устранять проблемы с Windows. Только драйверы и службы, необходимые для базовой работы операционной системы или предоставляющие службы диагностики и восстановления, должны загружаться в безопасном режиме. Загрузка других файлов в безопасном режиме затрудняет устранение неполадок с операционной системой.
- По умолчанию только драйверы и службы, предварительно установленные с помощью Windows, запускают в безопасном режиме. Все остальные драйверы и службы должны быть отключены, если система не требует их для основных операций или для диагностики и восстановления.
- Сведения о тестировании
- Драйверы, установленные приложением, не должны быть помечены для загрузки в безопасном режиме.
- Корректирующие действия
- Если драйвер или служба не должны запускаться в безопасном режиме, удалите записи приложения из разделов реестра.
- Исключения и отказы
- Для драйверов и служб, которые должны начинаться в безопасном режиме, требуется сертификат отказа. Запрос на отказ должен включать каждый драйвер и службу, чтобы добавить в разделы реестра SafeBoot и описать технические причины, по которым драйвер или служба должны выполняться в безопасном режиме. Установщик приложений должен зарегистрировать все такие драйверы и службы в следующих разделах реестра:
- HKLM/System/CurrentControlSet/Control/SafeBoot/Min
- HKLM/System/CurrentControlSet/Control/SafeBoot/Network
- Для драйверов и служб, которые должны начинаться в безопасном режиме, требуется сертификат отказа. Запрос на отказ должен включать каждый драйвер и службу, чтобы добавить в разделы реестра SafeBoot и описать технические причины, по которым драйвер или служба должны выполняться в безопасном режиме. Установщик приложений должен зарегистрировать все такие драйверы и службы в следующих разделах реестра:
- Примечание. Необходимо протестировать драйверы и службы, которые вы хотите запустить в безопасном режиме, чтобы гарантировать, что они работают в безопасном режиме без ошибок.
Многопользовательский тест сеанса
Проверьте, как работает приложение при одновременном запуске в нескольких сеансах.
- Фон
- Пользователи Windows должны иметь возможность выполнять одновременные сеансы. Приложения должны гарантировать, что при выполнении в нескольких сеансах (локально или удаленно) обычные функциональные возможности приложения не оказывают негативного влияния. Параметры приложения и файлы данных должны быть конкретными пользователями, а конфиденциальность и предпочтения пользователя должны быть ограничены сеансом пользователя.
- Сведения о тестировании
- Выполняет несколько одновременных экземпляров приложения, чтобы проверить следующее:
- Несколько экземпляров приложения, запущенного одновременно, изолированы друг от друга.
- Это означает, что данные пользователя из одного экземпляра не видны другому экземпляру. Звук в неактивном сеансе пользователя не должен быть услышан в активном сеансе пользователя. В случаях, когда несколько экземпляров приложений используют общие ресурсы, приложение должно убедиться, что конфликт не существует.
- Если приложение было установлено для нескольких пользователей, оно хранит данные в правильных папках и расположениях реестра.
- Приложение может выполняться в нескольких сеансах пользователей (быстрое переключение пользователей) для локального и удаленного доступа.
- Чтобы убедиться в этом, приложение должно проверить другие сеансы службы терминалов (TS) для существующих экземпляров приложения. Если приложение не поддерживает несколько сеансов пользователей или удаленный доступ, оно должно четко сказать пользователю, когда он запускается из такого сеанса.
- Выполняет несколько одновременных экземпляров приложения, чтобы проверить следующее:
- Исправление действия
- Убедитесь, что приложение не хранит файлы данных на уровне системы или параметры в хранилищах данных, таких как профиль пользователя или HKCU. Если это так, эта информация не будет доступна другим пользователям.
- Приложение должно установить системные файлы конфигурации и данных во время установки и создать файлы, относящиеся к пользователю, и параметры после установки при запуске пользователя.
- Убедитесь, что приложение не блокирует несколько одновременных сеансов локально или удаленно. Приложение не должно зависеть от глобальных мьютексов или других именованных объектов для проверки или блокировки нескольких одновременных сеансов.
- Если приложение не может разрешить несколько одновременных сеансов на пользователя, используйте пространства имен для мьютексов и других именованных объектов на пользователя или на сеанс.
Аварийное завершение и зависание теста
Отслеживает приложение во время тестирования сертификации, чтобы зафиксировать момент сбоя или зависания.
- Фон
- Сбои приложений, такие как сбои и зависания, являются серьезным нарушением работы пользователей и причиной разочарования. Устранение таких сбоев повышает стабильность и надежность приложений, а также обеспечивает пользователям лучший опыт работы с приложением. Приложения, которые перестают отвечать на запросы или завершать сбой, могут привести к потере данных и плохому опыту работы.
- Сведения о тестировании
- Мы проверяем устойчивость и стабильность приложений во время тестирования сертификации.
- Пакет сертификации приложений Windows вызывает IApplicationActivationManager::ActivateApplication для запуска приложений Магазина Windows. Чтобы ActivateApplication запустить приложение, необходимо включить контроль учетных записей пользователей (UAC), а разрешение экрана должно быть не менее 1024 x 768 или 768 x 1024. Если любое условие не выполнено, ваше приложение завершится сбоем этого теста.
- Корректирующие действия
- Убедитесь, что UAC включен на тестовом компьютере.
- Убедитесь, что вы выполняете тест на компьютере с достаточно большим экраном.
- Если приложение не запускается, и тестовая платформа удовлетворяет предварительным требованиям ActivateApplication, вы можете устранить проблему, просмотрив журнал событий активации. Чтобы найти эти записи в журнале событий, выполните указанные ниже действия.
- Откройте eventvwr.exe и перейдите к узлу \Журналы Windows\Application.
- Отфильтруйте представление, чтобы отобразить идентификаторы событий: 5900-6000.
- Просмотрите записи журнала для получения сведений, которые могут объяснить, почему приложение не запущено.
- Устраните файл с проблемой, определите и исправьте проблему. Перестройте и повторно протестируйте приложение.
- Дополнительные ресурсы
- использование средства проверки приложений в жизненного цикла разработки программного обеспечения
- средство проверки приложений
- использование средства проверки приложений
- библиотек DLL AppInit
- свести к минимуму время запуска (приложения Магазина Windows с помощью C#/VB/C++ и XAML)
Проверка совместимости и устойчивости
- Фон
- Эта проверка проверяет два аспекта приложения, основные исполняемые файлы приложения, например точка входа пользователя с приложением, должна быть манифестирована для совместимости, а также объявление правильного GUID. Для поддержки этого нового теста отчет будет иметь вложенный узел в разделе "Устойчивость & совместимости". Приложение завершится ошибкой, если одно или оба из этих условий отсутствуют.
- Сведения о тестировании
- совместимость: приложения должны быть полностью функциональными без использования режимов совместимости Windows, сообщений AppHelp или других исправлений совместимости. Манифест совместимости позволяет Windows предоставлять приложению правильное поведение совместимости в разных версиях ОС.
- AppInit: приложения не должны перечислять библиотеки DLL для загрузки в разделе реестра HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs.
- switchback: приложение должно предоставить манифест обратного коммутатора. Если манифест отсутствует, пакет сертификации приложений Windows выдает предупреждение. Пакет сертификации приложений Windows также проверяет, что манифест содержит допустимый GUID ОС.
- Корректирующие действия
- Исправьте компонент приложения, использующий исправление совместимости.
- Убедитесь, что приложение не зависит от исправлений совместимости для ее функциональных возможностей.
- Убедитесь, что приложение манифестировано, а раздел совместимости содержит соответствующие значения.
- Дополнительные сведения
- Дополнительные сведения см. в библиотеках DLL AppInit.
Тест рекомендаций по безопасности Windows
- Фон
- Приложение не должно изменять параметры безопасности Windows по умолчанию
- Сведения о тестировании
- Проверяет безопасность приложения, запустив анализатор поверхности атаки. Этот подход будет применяться для добавления категорий сбоев на основе каждого теста. Например, некоторые категории для теста безопасности могут включать:
- Сбой инициализации
- Сбой архитектуры безопасности
- Возможный сбой переполнения буфера
- Сбой сбоя
- Дополнительные сведения см. здесь.
- Проверяет безопасность приложения, запустив анализатор поверхности атаки. Этот подход будет применяться для добавления категорий сбоев на основе каждого теста. Например, некоторые категории для теста безопасности могут включать:
- Корректирующие действия
- Устранение неполадок и устранение проблемы, определяемой тестами. Перестройте и повторно протестируйте приложение.
Проверка возможностей безопасности Windows
- Фон
- Приложения должны принять участие в функциях безопасности Windows. Изменение защиты безопасности Windows по умолчанию может поставить клиентов под повышенный риск.
- Сведения о тестировании
- Проверяет безопасность приложения, запустив двоичный анализатор BinScope. Дополнительные сведения см. здесь.
- Корректирующие действия
- Устранение неполадок и устранение проблемы, определяемой тестами. Перестройте и повторно протестируйте приложение.
Тест высокого уровня DPI
Для приложений Win32 настоятельно рекомендуется учитывать DPI. Это ключ, чтобы пользовательский интерфейс приложения выглядел согласованно в различных параметрах отображения с высоким уровнем DPI. Приложение с поддержкой DPI, работающее в параметре отображения с высоким уровнем DPI, может иметь такие проблемы, как неправильное масштабирование элементов пользовательского интерфейса, обрезанный текст и размытые изображения. Существует два способа объявления приложения с учетом DPI. Одним из них является объявление DPI.
- Фон
- Эта проверка проверяет два аспекта приложения, основные исполняемые файлы, например точки входа с приложением, которые сталкиваются с пользователем, должны быть манифестированы для HIGH-DPI осведомленности и что для поддержки высокого уровня DPI вызываются соответствующие API. Приложение завершится ошибкой, если одно или оба из этих условий отсутствуют. Эта проверка введет новый раздел в классическом отчете, см. пример ниже.
- Сведения о тестировании
- Тест создаст предупреждение при обнаружении любого из следующих элементов:
- Основной EXE не объявляет осведомленность О DPI в манифесте и не вызывает API SetProcessDPIAware. (Предупреждайте разработчика, если он забыл добавить манифест осведомленности о DPI).
- Основной EXE не объявляет осведомленность О DPI в манифесте, но вызывает API SetProcessDPIAware (предупреждайте разработчика, что он должен использовать манифест для объявления осведомленности О DPI вместо вызова API).
- MainEXE объявляет осведомленность о DPI в манифесте, но также вызывает API SetProcessDPIAware (предупреждайте разработчика, что вызов этого API не требуется).
- Для двоичных файлов, которые не являются основными EXEs, если они вызывают API, предоставьте предупреждение (вызов API не рекомендуется).
- Тест создаст предупреждение при обнаружении любого из следующих элементов:
- Корректирующие действия
- Использование функции SetProcessDPIAware() не рекомендуется. Если библиотека DLL кэширует параметры DPI во время инициализации, вызов SetProcessDPIAware() в приложении может создать состояние гонки. Вызов функции SetProcessDPIAware() в библиотеке DLL не является хорошей практикой.
- Дополнительные сведения