控制裝置存取
UMDF 驅動程式主機進程會在本機服務帳戶的內容中執行。 您的驅動程式可能需要存取不允許一般化存取本機服務帳戶的其他裝置或元件。
從 Windows 8 開始,作業系統會包含可識別 UMDF 驅動程式的安全性識別碼 (SID) 。 藉由在其裝置安全性需求中包含此 SID,裝置或元件可以允許存取 UMDF 驅動程式,同時防止從本機服務帳戶存取其他要求。
UMDF 驅動程式的 SID 是SDDL_USER_MODE_DRIVERS,而定義位於 sddl.h 中。 此 SID 的完整標記法如下:
S-1-5-84-0-0-0-0-0
此 SID 的縮寫為 UD。 這個縮寫是從 Windows 8 開始提供。
UMDF 驅動程式外部的驅動程式可以在其 INF 檔案或驅動程式中指定 SID,再建立裝置物件。
在 INF 檔案中指定裝置安全性
在 INF 檔案中,您可以使用縮寫表單或 SID 的完整指定形式。
縮寫表單可從Windows 8開始提供:
HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;UD)"
在早于 Windows 8 的作業系統上,您必須使用完整指定的表單:
HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;S-1-5-84-0-0-0-0-0)"
在 KMDF 驅動程式中指定裝置安全性
若要在驅動程式中指定安全性需求,您必須使用縮寫表單,此表單僅適用于 Windows 8。 例如,KMDF 驅動程式可以使用下列專案,從 UMDF 驅動程式存取其裝置:
RtlInitUnicodeString(&sddlString, L"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;UD)");
status = WdfDeviceInitAssignSDDLString(DeviceInit, &sddlString);