硬體支援應用程式 (HSA) :適用于應用程式開發人員的步驟

本主題描述如何將裝置特定應用程式與驅動程式或 RPC (遠端程序呼叫) 端點產生關聯。 以這種方式配對時,應用程式稱為硬體支援應用程式 (HSA) 。 您可以透過 Microsoft Store 發佈及更新硬體支援應用程式。

通用 Windows 平臺 (UWP) 應用程式或傳統型 (Win32) 應用程式開始。 如果您想要使用傳統型應用程式,請使用傳統型橋接器建立 Windows 應用程式套件,以上傳至市集。

此頁面描述 UWP app 的程式,但步驟與 Win32 選項類似。

驅動程式開發人員的步驟說明于 硬體支援應用程式 (HSA) :驅動程式開發人員的步驟

開始使用

首先,安裝最新版的 Visual Studio 並建立 UWP 應用程式專案。 若要建置具有自訂功能的 UWP 應用程式,您需要 Windows SDK 10.0.15063 版 (Windows 10 Creators Update) 或更新版本。 您的專案檔也必須指定版本 10.0.15063 或更高版本。 如需設定的詳細資訊,請參閱 使用 Visual Studio 開發 UWP 應用程式

從 Windows 10 1709 版開始,您可以指定通用 Windows 平臺 (UWP) app 只有在特定驅動程式存在時才會載入。 若要瞭解如何,請參閱 將驅動程式與 UWP 應用程式配對

建立 Microsoft Store 帳戶

需要 Microsoft Store 上的開發人員帳戶。 硬體合作夥伴需要不同于其硬體合作夥伴帳戶的 Microsoft Store 帳戶。 當您在稍後的步驟中撰寫應用程式資訊清單和裝置中繼資料時,您將需要發行者名稱。 建立市集設定檔之後,您也可以保留應用程式的名稱。

若要建立 Microsoft Store 帳戶,請移至 [註冊]。 如需詳細資訊,請參閱 發佈 Windows 應用程式和遊戲

為應用程式選擇程式設計語言

如果您的應用程式會與驅動程式通訊,您可以使用屬於 WinRT API 的 Windows.Devices.Custom,因此可在 JavaScript、C# 和 C++ 中使用。

如果您的應用程式會與 NT 服務通訊,則需要使用 RPC API。 由於 RPC API 是 WinRT 中無法使用的 WIN32 API,因此您必須使用 C++、C++/CLI,或使用 .NET Interop (PInvoke) 包裝 RPC 呼叫。 如需詳細資訊,請參閱使用 C++/CLI從 Managed 程式碼和 .NET 程式設計呼叫原生函式。

請連絡自訂功能擁有者

現在您已準備好向功能擁有者要求存取自訂功能。 您必須收集下列資訊:

  • 來自 Microsoft Store 的應用程式 PFN (套件系列名稱)

  • 自訂功能的名稱

  • 應用程式簽署憑證的簽章雜湊,可使用 certutil.exe 從 .cer 檔案產生。 憑證必須是 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 的方案總管中,以滑鼠右鍵按一下 [專案- 新增 - >> 現有專案...將 SCCD 新增至您的專案。

將 SCCD 檔案新增至 appx 套件。

以滑鼠右鍵按一下 SCCD 檔案,並將 [內容 ] 變更為 True,將 SCCD 標示為組建內容。 針對 C# 專案,請使用 屬性 Build Action = Content ,而 針對 JavaScript 專案,請使用 Package Action = Content

將 SCCD 標示為內容。

最後,以滑鼠右鍵按一下專案,選取 [ 市集],然後 選取 [建立應用程式套件]。

不支援行動平臺上具有自訂功能的 UWP 應用程式。

安裝應用程式

若要預先安裝具有自訂功能的 UWP 應用程式,請使用 DISM - 部署映射服務與管理

疑難排解

當目的電腦處於開發人員模式時,您可以嘗試下列步驟來偵錯應用程式註冊失敗:

  1. 從 AppX 資訊清單中移除自訂功能專案。

  2. 建置您的應用程式並加以部署。

  3. 在 PowerShell 視窗中,輸入 Get-AppxPackage

  4. 在清單中尋找您的應用程式,並確認您應用程式的確切套件系列名稱。

  5. 使用套件系列名稱更新 SCCD。

  6. 將自訂功能專案新增回 AppX 資訊清單。

  7. 重建和部署。

另請參閱

硬體支援應用程式 (HSA) :驅動程式開發人員的步驟

啟用您的裝置以進行開發

自訂功能範例

使用 Windows 驅動程式消費者入門

將驅動程式與通用 Windows 平臺 (UWP) 應用程式配對

通用 Windows 平台簡介

通用 Windows 平台 (UWP)