共用方式為


doubleFetch 規則 (wdm)

DoubleFetch 規則是重要的安全性規則,可檢查驅動程式是否安全地存取透過 IRP 傳遞至使用者空間的緩衝區。 在驅動程式與使用者模式元件之間安全地傳送數據的適當方式,請參閱 使用「非緩衝」或「直接 I/O」。

驅動程式應該遵循存取數據緩衝區的方法中所述的指導方針和最佳做法 來存取數據緩衝區

此規則會檢查使用者模式記憶體指標的雙重擷取。 使用者模式記憶體的雙重核心模式存取可能會導致競爭狀況安全性問題。 存取使用者模式數據時,核心模式程式代碼必須在本機建立使用者模式數據的複本,並避免多次存取使用者模式數據。 無法這麼做會導致稱為「雙重擷取」的問題類型,其中數據在第一次存取之後可能會變更。

此規則從 Windows 10 WDK 組建 20236 開始提供。 此規則僅適用於 WDM泛型 驅動程序類型。

驅動程式模型:WDM、泛型

測試方法

在編譯時期:

  1. 執行 靜態驅動程式驗證器 ,並指定 雙擷取 規則。

  2. 使用下列步驟 (在 Windows 驅動程式中使用靜態驅動程式驗證器尋找瑕 疵) ,以執行程式代碼的分析:

如需詳細資訊,請參閱 使用靜態驅動程式驗證器在驅動程式中尋找瑕疵