共用方式為


驅動程式的非變異 MDL 檢查

[驅動程式的不變異 MDL 檢查] 選項會監視驅動程式如何處理每個驅動程式的不變異 MDL 緩衝區。 此選項會偵測不可變 MDL 緩衝區的不合法修改。 若要使用此選項,您必須在至少一個驅動程式上啟用 I/O 驗證。

注意此選項可從 Windows 8 開始使用。

[Invariant MDL Checking for Driver] 選項會執行比 [ 堆疊的不變異 MDL 檢查] 選項更密集形式的非變異 MDL 檢查 。 當 Invariant MDL Checking for Driver 為作用中時,會在每次呼叫 IoCallDriverIoCompleteRequest 常式時驗證緩衝區不變數。

每當 IRP 看到新的非變異 MDL 緩衝區時,Driver Verifier 會計算緩衝區內容的簽章,並將其儲存在其內部資料庫中。 當驅動程式驗證器遇到先前看到的不變異 MDL 緩衝區時,它會藉由比較資料庫中的簽章與目前不變異 MDL 緩衝區內容所計算的簽章,來驗證緩衝區的內容尚未變更。

此選項是全域的,無法選擇性地強制執行某些驅動程式。

啟用此選項

您可以使用驅動程式驗證器管理員或Verifier.exe命令列,為一或多個驅動程式啟用驅動程式的不變異 MDL 檢查功能。 如需詳細資訊,請參閱 選取驅動程式驗證器選項。 您必須重新開機電腦,才能啟用或停用 [驅動程式的不變異 MDL 檢查] 選項。

若要啟用 [堆疊的不變異 MDL 檢查 ] 選項,您也必須啟用 I/O 驗證

  • 在命令列

    在命令列中,驅動程式的 Invariant MDL Checking 是由 驗證程式 /flags 0x00004000 (Bit 14) 來表示。 若要啟用驅動程式的 Invariant MDL Checking,請使用旗標值0x00004010或將0x00004010新增至旗標值。 這個值會啟動 I/O 驗證 (0x10) 和驅動程式的不變異 MDL 檢查 (0x00004000) 。 例如:

    verifier /flags 0x00004010 /driver MyDriver.sys
    

    下一次開機之後,此功能將會處於作用中狀態。

  • 使用驅動程式驗證器管理員

    1. 啟動驅動程式驗證器管理員。 在 [命令提示字元] 視窗中輸入 驗證程式
    2. 選取 [為程式碼開發人員建立自訂設定] () ,然後按 [ 下一步]。
    3. 從完整清單中選取 [選取個別設定]。
    4. 選取 [ (檢查) I/O 驗證 和驅動程式的非變異 MDL 檢查。
    5. 重新啟動電腦。