硬體支援應用程式 (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 檔案並將 [內容] 變更為 True,將 SCCD 標示為組建內容。 若為 C# 專案,請使用 屬性 Build Action = Content
,而 針對 JavaScript 專案,請使用 Package Action = Content
。
最後,以滑鼠右鍵按兩下項目,選取 [市集],然後選取 [建立應用程式套件]。
不支援在行動平臺上具有自定義功能的 UWP 應用程式。
安裝應用程式
若要預先安裝具有自定義功能的 UWP 應用程式,請使用 DISM - 部署映像服務與管理。
疑難排解
當目標電腦處於開發人員模式時,您可以嘗試下列步驟來偵錯應用程式註冊失敗:
從 AppX 指令清單中移除自訂功能專案。
建置您的應用程式並加以部署。
在 PowerShell 視窗中,輸入
Get-AppxPackage
。在清單中尋找您的應用程式,並確認應用程式的確切套件系列名稱。
使用套件系列名稱更新 SCCD。
將自定義功能專案新增回 AppX 指令清單。
重建和部署。