Поделиться через


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

В этом разделе описывается связывание приложения для конкретного устройства с конечной точкой драйвера или RPC (удаленный вызов процедуры). При паре в этом режиме приложение называется приложением поддержки оборудования (HSA). Вы можете распространять и обновлять приложение поддержки оборудования через Microsoft Store.

Начните с приложения универсальная платформа Windows (UWP) или классического приложения (Win32). Если вы хотите использовать классическое приложение, используйте мост для классических приложений для создания пакета приложений Windows, который можно отправить в Магазин.

На этой странице описывается процедура для приложения UWP, но шаги аналогичны параметру Win32.

Действия разработчика драйверов описаны в приложении поддержки оборудования (HSA): действия для разработчиков драйверов.

Начало работы

Сначала установите последнюю версию Visual Studio и создайте проект приложения UWP. Чтобы создать приложение UWP с пользовательской возможностью, вам потребуется пакет SDK для Windows версии 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.

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

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

  • 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-char.

    <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 в проект.

Добавление SCCD-файла в пакет appx.

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

Пометка SCCD как содержимое.

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

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

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

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

Начало разработки драйверов Windows

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

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

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