自定義裝置的設計考慮
本主題描述可協助您判斷裝置是否需要自定義驅動程式的設計考慮。
判斷要實作的驅動程序類型
下表說明何時應該開發裝置的自定義驅動程式,並使用裝置存取 API 與其通訊,以及何時應改用 Windows 提供的裝置堆疊。
支援 | 實作 |
---|---|
已知的裝置,包括:
|
對於許多類型的已知裝置,您不需要自定義驅動程式,因為 Windows 包含管理驅動程式與 Windows 之間通訊的 API 和類別擴充設備驅動器介面(DIS)。 感測器、位置和 Windows 可攜式裝置 (WPD) 裝置是支援此支援的裝置類別的一些範例。 如果您建置使用其中一個 Windows 提供的 DIS 來傳送和接收資料和命令的驅動程式,則不需要 Windows 市集應用程式使用裝置存取 API 來代理存取或將輸入/輸出 (I/O) 控制碼直接傳送給驅動程式。 當 Windows 市集應用程式使用裝置類別的 Windows 執行階段 API 要求存取已知裝置時,Windows 8 會根據裝置類型來處理裝置存取。 應用程式一律會存取某些已知類型的裝置(例如加速計),這些裝置不會顯示任何個人標識資訊。 其他類型的已知裝置必須先在應用程式指令清單中宣告,應用程式才能存取它們。 用戶必須授與應用程式的許可權,才能存取顯示敏感性資訊的裝置,例如位置、網路攝影機和麥克風裝置,或可能花費用戶費用,例如行動寬頻裝置。 |
實作 MTP 服務的 WPD 裝置。 |
您可以使用 MTP 類別驅動程式,或使用 WPD DDI 來建置驅動程式。 Windows 8 提供 MTP 裝置服務的支援。而應用程式可以使用 Windows.Devices.Portable Windows 執行階段 API、可攜式裝置元件物件模型 (COM) API 或 WPD 自動化來存取裝置。 您的應用程式不需要使用裝置存取 API。 |
沒有 Windows 提供的類別擴充功能或類別驅動程式的裝置。 |
在此情況下,請參閱 適用於特殊裝置之內部裝置 的 UWP 裝置應用程式,以判斷您是否必須使用裝置存取 API 來實作自定義驅動程式存取。 |
安全性考量
下列文章提供撰寫安全 C++ 程式代碼的指引:
- C++ 的安全性最佳做法
- [應用程式模式與實務安全性指引]/舊版/msp-n-p/ff650760(v=pandp.10))
相關主題
自定義驅動程式存取範例、適用於內部裝置的 UWP 裝置應用程式、硬體開發人員中心