指定裝置物件的獨佔存取權
如果啟用裝置的獨佔存取權,一次只能開啟一個裝置的控制碼。 若要讓 I/O 管理員強制執行裝置的獨佔存取權,必須在裝置堆疊中為具名裝置物件設定獨佔屬性。
對於具有 PDO 和 FDO 的 WDM 裝置堆疊,獨佔屬性只能由 INF 檔案使用 INF AddReg 指示詞來設定。 PDO 是堆疊中的具名物件,但匯流排驅動程式 (不是函式驅動程式本身,) 代表函式驅動程式建立 PDO。 指示匯流排驅動程式設定 PDO 獨佔旗標的唯一方式是類別或裝置 INF 檔案。 (IoCreateDevice 常式的呼叫會建立 FDO;設定 FDO 的獨佔旗標沒有任何效果。)
未堆疊裝置物件的驅動程式,例如非 WDM 驅動程式和在原始模式中運作的裝置,可以使用 IoCreateDeviceSecure 常式來設定其具名裝置物件的獨佔屬性。
不論尾端名稱為何,I/O 管理員都會根據具名裝置物件,根據每個名稱強制執行獨佔性。 例如,假設裝置物件的名稱為 「\Device\DeviceName」。 然後,I/O 管理員會強制要求開啟 「\Device\DeviceName\Filename1」,後面接著 「\Device\DeviceName\Filename2」。 如果裝置堆疊中的兩個物件命名為 (不建議) ,則 I/O 管理員允許針對每個物件開啟單一控制碼。 在這種情況下,驅動程式必須在其 DRIVER_DISPATCH 回呼函式內強制執行獨佔性。 I/O 管理員也不會強制執行相對於另一個檔案控制碼開啟的獨佔性。 如需裝置命名空間中檔案開啟要求的詳細資訊,請參閱 控制裝置命名空間存取。