Приложение поддержки оборудования (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, перейдите на страницу регистрации приложений UWP. Дополнительные сведения см. в разделе "Открытие учетной записи разработчика".

Выбор языка программирования для приложения

Если приложение будет взаимодействовать с драйвером, можно использовать 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.

Обратитесь к владельцу пользовательской возможности

Теперь вы готовы запросить доступ к пользовательской возможности от владельца функции. Вам потребуется собрать следующие сведения:

  • App PFN (имя семейства пакетов) из Microsoft Store

  • Имя настраиваемой возможности

  • Хэш подписи приложения, который можно создать из CER-файла с помощью certutil.exe. Сертификат должен иметь значение SHA-256.

Чтобы создать хэш подписи, выполните команду C:\Windows\System32\certutil.exe -dump CertificateName.cer.

Найдите хэш подписи в нижней части экрана и убедитесь, что это SHA256. В противном случае используйте сертификат SHA256 для подписывания приложения. Результат должен выглядеть следующим образом:

Signature Hash:
ca9fc964db7e0c2938778f4559946833e7a8cfde0f3eaa07650766d4764e86c4

Владелец функции использует эти сведения для создания файла дескриптора подписанной пользовательской возможности и отправляет этот файл разработчику приложения.

Разработчик приложений может продолжить разработку приложения с пользовательскими возможностями в режиме разработчика, ожидая утверждения запроса владельцем возможности. Например, используйте следующий код в SCCD на настольном компьютере в режиме разработчика:

  • Запись каталога в SCCD.

    <Catalog>FFFF</Catalog>
    
  • Хэш подписи сертификата в записи авторизованной сущности в SCCD. Хотя он не применяется и не проверяется, поместите последовательность 64-символов.

    <AuthorizedEntity AppPackageFamilyName="MicrosoftHSATest.Microsoft.SDKSamples.Hsa.CPP_q536wpkpf5cy2" CertificateSignatureHash="ca9fc964db7e0c2938778f4559946833e7a8cfde0f3eaa07650766d4764e86c4"></AuthorizedEntity>
    

Добавление настраиваемой возможности в манифест пакета приложения

Затем измените исходный файл манифеста пакета приложения (Package.appxmanifest), чтобы включить атрибут возможностей.

<?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 щелкните правой кнопкой мыши "Project-> Add -> Existing Item..." чтобы добавить SCCD в проект.

Adding an SCCD file into the appx package.

Пометьте SCCD как содержимое сборки, щелкнув правой кнопкой мыши файл SCCD и изменив значение Content на True. Для проекта C# используйте свойство Build Action = Contentи для проекта Package Action = ContentJavaScript.

Marking SCCD as content.

Наконец, щелкните проект правой кнопкой мыши, выберите Магазин, а затем создайте пакеты приложений.

Примечание

Приложения UWP с пользовательскими возможностями на мобильных платформах не поддерживаются.

Установка приложения

Чтобы предварительно установить приложение UWP с пользовательскими возможностями, используйте DISM — обслуживание образов развертывания и управление ими.

Устранение неполадок

Если целевой компьютер находится в режиме разработчика, можно выполнить следующие действия для отладки сбоя регистрации приложения:

  1. Удалите запись пользовательской возможности из манифеста AppX.

  2. Создайте приложение и разверните его.

  3. В окне PowerShell введите Get-AppxPackage.

  4. Найдите приложение в списке и проверьте точное имя семейства пакетов для приложения.

  5. Обновите SCCD с именем семейства пакетов.

  6. Добавьте запись пользовательской возможности обратно в манифест AppX.

  7. Перестройте и разверните.

См. также:

Приложение поддержки оборудования (HSA): шаги для разработчиков драйверов

Включение устройства для разработки

Пример пользовательской возможности

начало работы с драйверами Windows

Связывание драйвера с приложением универсальная платформа Windows (UWP)

Общие сведения об универсальной платформе Windows

Универсальная платформа Windows (UWP)