Invariant MDL Checking for Driver 選項會監視驅動程式如何處理每個驅動程式的不變異 MDL 緩衝區。 此選項會偵測不變 MDL 緩衝區的非法修改。 若要使用此選項,您必須在至少一個驅動程式上啟用 I/O 驗證。
注意 從 Windows 8 開始,此選項可供使用。
選擇 [不變異 MDL 驗證(驅動程式)] 比選擇 [不變異 MDL 驗證(堆疊)] 會執行更密集的不變異 MDL 檢查。 當 Invariant MDL Checking for Driver 為作用中時,會在每次呼叫 IoCallDriver 和 IoCompleteRequest 例程時驗證緩衝區不變異。
每次使用 IRP 看到新的非變異 MDL 緩衝區時,Driver Verifier 都會計算緩衝區內容的簽章,並將其儲存在其內部資料庫中。 當 Driver Verifier 遇到先前所見的不變異 MDL 緩衝區時,它會比較資料庫中的簽章與目前不可變 MDL 緩衝區內容所計算的簽章,來驗證緩衝區的內容尚未變更。
此選項是全域的,無法選擇性地強制執行某些驅動程式。
啟用此選項
您可以使用 Driver Verifier Manager 或 Verifier.exe 命令行,為一或多個驅動程式啟用非變異 MDL 檢查功能。 如需詳細資訊,請參閱 選取驅動程式驗證器選項。 您必須重新啟動計算機,才能啟用或停用 [驅動程式的不變異 MDL 檢查] 選項。
若要啟用 [ 堆棧的不變異 MDL 檢查 ] 選項,您也必須啟用 I/O 驗證。
在命令行
在命令行中,驅動程式的不變異 MDL 檢查是由 驗證器 /flags 0x00004000 (Bit 14) 表示。 若要啟用驅動程式的無變數 MDL 檢查,請使用旗標值 0x00004010,或將0x00004010新增至旗標值。 這個值會啟動 I/O 驗證(0x10),以及驅動程式的無變數 MDL 檢查(0x00004000)。 例如:
verifier /flags 0x00004010 /driver MyDriver.sys下一次開機之後,此功能將會處於作用中狀態。
使用驅動程式驗證器管理員
- 啟動驅動程式驗證器管理員。 在命令提示字元視窗中輸入 驗證程式。
- 選取 建立自訂設定 (適用於程式碼開發人員), 然後按一下 下一步。
- 選擇 從完整清單中選取個別設定。
- 選取 [I/O 驗證 ] 和 [驅動程式的不變異 MDL 檢查]。
- 重新啟動電腦