共用方式為


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

本文說明如何將裝置特定應用程式與驅動程式或 RPC(遠端過程調用) 端點產生關聯。 以這種方式配對時,應用程式稱為硬體支援應用程式(HSA)。 您可以透過 Microsoft 市集散發及更新硬體支援應用程式。

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

此頁面描述 UWP 應用程式的程式,但 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) 應用程式。 若要瞭解如何,請參閱 將驅動程式與 UWP 應用程式配對。

建立Microsoft市集帳戶

需要Microsoft市集上的開發人員帳戶。 硬體合作夥伴需要擁有一個與其硬體合作夥伴帳戶不同的 Microsoft 市集帳戶。 當您在後續步驟中撰寫應用程式指令清單和裝置元數據時,您需要發行者名稱。 建立商店配置檔之後,您也可以預留應用程式的名稱。

若要建立Microsoft市集帳戶,請移至 Windows 開發人員中心。 如需詳細資訊,請參閱 發佈 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市集的應用程式 PFN (套件系列名稱)

  • 自訂功能的名稱

  • 應用程式簽署憑證的簽章哈希,可使用 certutil.exe 從您的.cer檔案產生。 憑證必須是SHA-256。

若要產生簽章哈希,請執行 C:\Windows\System32\certutil.exe -dump CertificateName.cer

尋找底部附近的簽章哈希,並確定其為SHA256。 否則,請使用SHA256憑證來簽署您的應用程式。 產生的結果應該如下所示:

Signature Hash:
ca9fc964db7e0c2938778f4559946833e7a8cfde0f3eaa07650766d4764e86c4

功能擁有者會使用此資訊來產生 已簽署的自定義功能描述元 檔案,並將此檔案傳送給應用程式開發人員。

應用程式開發人員可以在等待功能擁有者核准要求時,繼續以開發人員模式開發具有自定義功能的應用程式。 例如,在 開發人員模式的桌面 PC 上,在 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 檔案新增至 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)