共用方式為


硬體支援應用程式 (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 應用程式和遊戲

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

如果您的應用程式會與驅動程序通訊,您可以使用 屬於 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

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

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