控制裝置存取 (WDM)
裝置的存取權是由安全性描述元 (和它包含) 的 ACL 所控制。 建立裝置物件或在登錄中設定裝置物件時,可以指定裝置物件的安全性描述元。
控制 WDM 驅動程式的裝置存取
當 WDM 驅動程式 (特定匯流排驅動程式) 建立裝置物件時,隨插即用管理員會決定裝置的安全描述項。 作業的順序如下。
PnP 管理員會呼叫驅動程式的 AddDevice 常式。
驅動程式的 AddDevice 常式會呼叫 IoCreateDevice 來建立裝置物件,並將其連結至裝置物件堆疊。
PnP 管理員會更新新建立之裝置物件的安全性描述項。
對於 WDM 驅動程式,PnP 管理員會判斷裝置物件的安全性描述項,如下所示。
如果裝置在登錄中有安全性描述項設定,則會套用至裝置堆疊中的每個物件。
否則,如果裝置的安裝類別在登錄中有安全性描述項設定,則會套用至裝置堆疊中的每個物件。
否則,PnP 管理員會保留每個物件的預設安全性描述項未變更。 在此情況下,堆疊的預設安全性描述元取決於 PDO 的裝置類型和裝置特性。
針對大部分的裝置類型和特性,預設的安全性描述元會提供系統管理員的完整存取權 (GENERIC_ALL) ,以及讀取、寫入和執行存取 (GENERIC_READ |GENERIC_WRITE |GENERIC_EXECUTE) 其他人的存取權。
如需如何在登錄中為裝置或裝置安裝類別設定安全描述元的詳細資訊,請參閱 在登錄中設定裝置物件屬性。
如果裝置是以原始模式運作,則 PnP 管理員無法判斷裝置物件的安全性描述項。 在此情況下,匯流排驅動程式必須提供安全性描述項;請參閱下方。
控制 WDM 匯流排驅動程式的裝置存取
WDM 匯流排驅動程式必須為可在原始模式中運作之每個裝置的 PDO 提供安全性描述項。 使用 IoCreateDeviceSecure 建立具有安全性描述元的裝置物件。
如果匯流排驅動程式未以原始模式操作裝置,則不需要提供安全性描述元。 如上所述,PnP 管理員會決定安全性描述項。 如果匯流排驅動程式必須確定其 PDO 的安全性設定比預設描述項更嚴格的安全性設定,則可提供安全描述元。 匯流排驅動程式所指定的任何描述項,會由登錄中的設定覆寫。
如需建立裝置物件的詳細資訊,請參閱 建立裝置物件。
控制非 WDM 驅動程式的裝置存取
非 WDM 驅動程式必須為其建立的任何具名裝置物件指定預設的安全性描述元和類別 GUID。
使用 IoCreateDeviceSecure 常式來建立具名裝置物件,並指定該裝置的預設安全性描述元和類別 GUID。 安全性描述項是在 SDDL 子集中指定。 如需詳細資訊,請參閱 裝置物件的 SDDL。
系統會使用指定類別 GUID 登錄中的任何安全性設定覆寫預設安全性描述項。 驅動程式必須為裝置指定自己的唯一 GUID。 使用 GuidGen 工具來產生唯一的 GUID。 (GuidGen 包含在 Microsoft Windows SDK.)