Aracılığıyla paylaş


Donanım Destek Uygulaması (HSA): Uygulama Geliştiricileri için Adımlar

Bu makalede, cihaza özgü bir uygulamanın bir sürücü veya RPC (Uzaktan Yordam Çağrısı) uç noktasıyla nasıl ilişkilendirileceği açıklanır. Bu şekilde eşleştirildiğinde, uygulama donanım destek uygulaması (HSA) olarak adlandırılır. Bir Donanım Destek Uygulamasını Microsoft Store aracılığıyla dağıtabilir ve güncelleştirebilirsiniz.

Evrensel Windows Platformu (UWP) uygulaması veya masaüstü (Win32) uygulamasıyla başlayın. Bir masaüstü uygulaması kullanmak istiyorsanız, Mağaza'ya yükleyebileceğiniz bir Windows Uygulama Paketi oluşturmak için Masaüstü Köprüsü'nü kullanın.

Bu sayfada bir UWP uygulamasının yordamı açıklanmaktadır, ancak Win32 seçeneği için adımlar benzerdir.

Sürücü geliştiricisinin adımları Donanım Destek Uygulaması (HSA): Sürücü Geliştiricileri için adımlar bölümünde açıklanmıştır.

Getting Started

İlk olarak, Visual Studio'nun en son sürümünü yükleyin ve bir UWP uygulama projesi oluşturun. Özel bir özelliğe sahip bir UWP uygulaması oluşturmak için Windows SDK sürüm 10.0.15063 (Windows 10 Creators Update) veya üzeri gerekir. Proje dosyanız da sürüm 10.0.15063 veya üzerini belirtmelidir. Yapılandırma hakkında daha fazla yardım için bkz. Visual Studio kullanarak UWP uygulamaları geliştirme.

Windows 10 sürüm 1709'dan başlayarak, Evrensel Windows Platformu (UWP) uygulamasının yalnızca belirli bir sürücü varsa yüklenmesi gerektiğini belirtebilirsiniz. Nasıl yapılacağını öğrenmek için bkz. UWP uygulamasıyla sürücü eşleştirme.

Microsoft Store hesabı oluşturma

Microsoft Store'da bir geliştirici hesabı gereklidir. Donanım iş ortaklarının Donanım iş ortağı hesaplarından farklı bir Microsoft Store hesabına ihtiyacı vardır. Sonraki adımlarda uygulama bildirimini ve cihaz meta verilerini yazarken yayımcı adına ihtiyacınız vardır. Mağaza profili oluşturduktan sonra uygulamanız için bir ad ayırabilirsiniz.

Microsoft Store hesabı oluşturmak için Windows Geliştirme Merkezi'ne gidin. Daha fazla bilgi için bkz. Windows uygulamalarını ve oyunlarını yayımlama.

Uygulama için programlama dili seçme

Uygulamanız bir sürücüyle iletişim kurarsa, WinRT API'sinin bir parçası olan ve bu nedenle JavaScript, C# ve C++ ile kullanılabilen Windows.Devices.Custom'ı kullanabilirsiniz.

Uygulamanız bir NT hizmetiyle iletişim kurarsa RPC API'lerini kullanmanız gerekir. RPC API'leri WinRT'de bulunmayan Win32 API'leri olduğundan, C++, C++/CLI kullanmanız veya .NET birlikte çalışma (PInvoke) kullanarak RPC çağrılarını sarmalamanız gerekir. Daha fazla bilgi için bkz. C++/CLI ileYönetilen Koddan Yerel İşlevleri çağırma ve .NET programlama.

Özel yetenek sahibine başvurun

Artık bir özellik sahibinden özel bir özelliğe erişim istemeye hazırsınız. Aşağıdaki bilgileri toplamanız gerekir:

  • Microsoft Store'dan Paket Aile Adı (PFN) uygulaması
  • Özel özelliğin adı
  • certutil.exekullanılarak .cer dosyanızdan oluşturulabilen uygulama imzalama sertifikasının İmza Karması. Sertifika SHA-256 olmalıdır.

İmza karması oluşturmak için komutunu çalıştırın C:\Windows\System32\certutil.exe -dump CertificateName.cer.

Alt kısımdaki imza karmasını arayın ve SHA256 olduğundan emin olun. Aksi takdirde, uygulamanızı imzalamak için bir SHA256 sertifikası kullanın. Sonuç şu şekilde görünmelidir:

Signature Hash:
ca9fc964db7e0c2938778f4559946833e7a8cfde0f3eaa07650766d4764e86c4

Özellik sahibi bu bilgileri kullanarak İmzalı özel yetenek Tanımlayıcısı dosyası oluşturur ve bu dosyayı uygulama geliştiricisine gönderir.

Uygulama geliştiricisi, özellik sahibinin isteği onaylamasını beklerken geliştirici modunda özel özelliklere sahip bir uygulama geliştirmeye devam edebilir. Örneğin, Geliştirici Modu'ndaki bir masaüstü bilgisayarda SCCD'de aşağıdaki girdileri kullanın:

  • SCCD'de katalog girdisi.

    <Catalog>FFFF</Catalog>
    
  • SCCD'deki yetkilendirilmiş varlık kaydında Sertifika İmza Karması. Zorlanmasa veya doğrulanmasa da 64 karakterlik bir dizi koyun.

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

Uygulama Paketi Bildirimi'ne özel bir özellik ekleme

Ardından, uygulama paketi bildirim kaynak dosyanızı (Package.appxmanifest) bir capabilities özniteliği içerecek şekilde değiştirin.

<?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>

Ardından SCCD dosyasını appx paketinin paket köküne kopyalayın. Visual Studio'nun çözüm gezgininde "project-> Ekle -> Varolan Öğe..." menü seçeneğine sağ tıklayın ve SCCD'yi projenize ekleyin.

appx paketine SCCD dosyası ekleme.

SCCD dosyasına sağ tıklayıp İçerik'iTrue olarak değiştirerek SCCD'yi derleme içeriği olarak işaretleyin. C# projesi için özelliğini Build Action = Contentkullanın ve JavaScript projesi için kullanın Package Action = Content.

SCCD'nin içerik olarak işaretlenmesi.

Son olarak projeye sağ tıklayın, Mağaza'yı ve ardından Uygulama Paketleri Oluştur'u seçin.

Mobil platformlarda özel özelliklere sahip UWP uygulamaları için destek yoktur.

Uygulamayı Yükleme

Özel özelliklere sahip bir UWP uygulamasını önceden yüklemek için DISM - Dağıtım Görüntüsü Bakımı ve Yönetimi'ni kullanın.

Troubleshooting

Hedef makine Geliştirici Modu'ndayken uygulama kayıt hatasının hatalarını ayıklamak için aşağıdaki adımları deneyebilirsiniz:

  1. AppX bildiriminizden özel yetenek girdisini kaldırın.
  2. Uygulamanızı derleyin ve dağıtın.
  3. PowerShell penceresinde yazın Get-AppxPackage.
  4. Listede uygulamanızı arayın ve uygulamanızın tam paket ailesi adını doğrulayın.
  5. SCCD'nizi paket ailesi adıyla güncelleştirin.
  6. Özel yetenek girdisini AppX bildiriminize geri ekleyin.
  7. Yeniden derleyin ve dağıtın.