Приложение поддержки оборудования (HSA): шаги для разработчиков приложений
В этом разделе описывается, как связать приложение для конкретного устройства с конечной точкой драйвера или RPC (удаленный вызов процедур). При таком связывании приложение называется приложением поддержки оборудования (HSA). Вы можете распространять и обновлять приложение поддержки оборудования через Microsoft Store.
Начните с приложения универсальная платформа Windows (UWP) или классического приложения (Win32). Если вы хотите использовать классическое приложение, используйте мост для классических приложений, чтобы создать пакет приложений для Windows, который можно отправить в Магазин.
На этой странице описывается процедура для приложения UWP, но шаги аналогичны для параметра Win32.
Действия разработчика драйверов описаны в разделе Приложение поддержки оборудования (HSA): Шаги для разработчиков драйверов.
Приступая к работе
Сначала установите последнюю версию Visual Studio и создайте проект приложения UWP. Чтобы создать приложение UWP с пользовательской возможностью, вам потребуется Windows SDK версии 10.0.15063 (Windows 10 Creators Update) или более поздней. В файле проекта также должна быть указана версия 10.0.15063 или более поздняя. Дополнительные сведения о настройке см. в статье Разработка приложений UWP с помощью Visual Studio.
Начиная с Windows 10 версии 1709, можно указать, что приложение универсальная платформа Windows (UWP) должно загружаться только при наличии определенного драйвера. Дополнительные сведения см. в статье Связывание драйвера с приложением UWP.
Создание учетной записи Microsoft Store
Требуется учетная запись разработчика в Microsoft Store. Партнерам по оборудованию потребуется учетная запись Microsoft Store, отличная от учетной записи партнера по оборудованию. Имя издателя потребуется при создании манифеста приложения и метаданных устройства на последующих шагах. Вы также можете зарезервировать имя приложения после создания профиля магазина.
Чтобы создать учетную запись Microsoft Store, перейдите в раздел Регистрация. Дополнительные сведения см. в статье Публикация приложений и игр для Windows.
Выбор языка программирования для приложения
Если приложение будет взаимодействовать с драйвером, можно использовать Windows.Devices.Custom, который является частью API WinRT и поэтому доступен в JavaScript, C# и C++.
Если приложение будет взаимодействовать со службой NT, необходимо использовать API RPC. Так как API RPC — это API-интерфейсы Win32, недоступные в WinRT, необходимо либо использовать C++, C++/CLI, либо упаковать вызовы RPC с помощью взаимодействия .NET (PInvoke). Дополнительные сведения см. в разделах Вызов собственных функций из управляемого кода и программирование .NET с помощью C++/CLI.
Обратитесь к владельцу настраиваемой возможности
Теперь вы готовы запросить доступ к пользовательской возможности у владельца возможности. Вам потребуется собрать следующие сведения:
PFN приложения (имя семейства пакетов) из Microsoft Store
Имя настраиваемой возможности
Хэш подписи сертификата подписи приложения, который можно создать из CER-файла с помощью certutil.exe. Сертификат должен иметь значение SHA-256.
Чтобы создать хэш подписи, выполните команду C:\Windows\System32\certutil.exe -dump CertificateName.cer
.
Найдите хэш подписи в нижней части и убедитесь, что это SHA256. В противном случае используйте сертификат SHA256 для подписи приложения. Результат должен выглядеть следующим образом:
Signature Hash:
ca9fc964db7e0c2938778f4559946833e7a8cfde0f3eaa07650766d4764e86c4
Владелец возможности использует эти сведения для создания файла дескриптора пользовательской возможности signed и отправляет этот файл разработчику приложения.
Разработчик приложения может продолжить разработку приложения с пользовательскими возможностями в режиме разработчика, ожидая, пока владелец возможности утвердит запрос. Например, используйте следующую команду в SCCD на настольном компьютере в режиме разработчика:
Запись каталога в SCCD.
<Catalog>FFFF</Catalog>
Хэш подписи сертификата в записи авторизованной сущности в SCCD. Хотя он не применяется и не проверяется, поместите последовательность из 64 символов.
<AuthorizedEntity AppPackageFamilyName="MicrosoftHSATest.Microsoft.SDKSamples.Hsa.CPP_q536wpkpf5cy2" CertificateSignatureHash="ca9fc964db7e0c2938778f4559946833e7a8cfde0f3eaa07650766d4764e86c4"></AuthorizedEntity>
Добавление пользовательской возможности в манифест пакета приложения
Затем измените исходный файл манифеста пакета приложения (Package.appxmanifest
), чтобы включить атрибут capabilities.
<?xml version="1.0" encoding="utf-8"?>
<Package
...
xmlns:uap4="http://schemas.microsoft.com/appx/manifest/uap/windows10/4">
...
<Capabilities>
<uap4:CustomCapability Name="CompanyName.customCapabilityName_PublisherID"/>
</Capabilities>
</Package>
Затем скопируйте SCCD-файл в корень пакета appx. В обозревателе решений Visual Studio щелкните правой кнопкой мыши "проект -> Добавить - существующий> элемент..." , чтобы добавить SCCD в проект.
Пометьте SCCD как содержимое сборки, щелкнув правой кнопкой мыши файл SCCD и изменив значение Содержимое на True. Для проекта C# используйте свойство Build Action = Content
, а для проекта JavaScript — Package Action = Content
.
Наконец, щелкните проект правой кнопкой мыши, выберите Магазин, а затем Создать пакеты приложений.
Приложения UWP с пользовательскими возможностями на мобильных платформах не поддерживаются.
Установка приложения
Чтобы предварительно установить приложение UWP с пользовательскими возможностями, используйте DISM — обслуживание образов развертывания и управление ими.
Устранение неполадок
Если целевой компьютер находится в режиме разработчика, вы можете выполнить следующие действия для отладки сбоя регистрации приложений.
Удалите запись пользовательской возможности из манифеста AppX.
Создайте приложение и разверните его.
В окне PowerShell введите
Get-AppxPackage
.Найдите приложение в списке и проверьте точное имя семейства пакетов для приложения.
Обновите SCCD, указав имя семейства пакетов.
Добавьте запись настраиваемой возможности обратно в манифест AppX.
Перестройте и разверните.
См. также:
Приложение поддержки оборудования (HSA): действия для разработчиков драйверов
Включение устройства для разработки
Пример пользовательской возможности
начало работы с драйверами Windows
Связывание драйвера с приложением универсальная платформа Windows (UWP)
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по