共用方式為


WDM) (警告規則集

使用這些規則來確認您的驅動程式可以在各種內容中正確處理 IRP,並遵循 Microsoft 建議的最佳做法。

本節內容

主題 描述

CheckDeviceObjectFlags

CheckDeviceObjectFlags 規則會指定總線驅動程式必須檢查裝置物件旗標的DO_POWER_PAGABLE和DO_POWER_INRUSH是否一致地為 FDO 和子 PDO 設定。 此規則僅適用於總線驅動程式。

CompletionEventChecking

CompletionEventChecking 規則指定驅動程式不會在相同 IRP 的完成例程中呼叫 IoMarkIrpPendingKeSetEvent

DeleteDevice

DeleteDevice 規則指定驅動程式不應該依賴 I/O 管理員或 PnP 管理員,在呼叫 IoDeleteDevice 之後讓 DeviceObject 保持運作。

MultRemoveLock

MultRemoveLock 規則會確認只有一個唯一的 Remove Lock 呼叫 IoAcquireRemoveLock。 這是警告規則。

PagedCode

PagedCode 規則會指定驅動程式只在 IRQL <= APC_LEVEL執行時呼叫PAGED_CODE宏。

PagedCodeAtPowerTrans

PagedCodeAtPowerTrans 規則會指定驅動程式在響應系統IRP_MJ_POWER Irp (IRP_MN_SET_POWER) 時,不應該呼叫PAGED_CODE,以及回應IRP_MJ_POWER Irp (IRP_MN_SET_POWER) 的裝置。

ReservedDIS

ReservedDIS 規則會確認驅動程式不會呼叫任何保留函式。

選取警告規則集

  1. 在 Microsoft Visual Studio 中選取驅動程式項目 (.vcxProj) 。 從 [ 驅動程式 ] 功能表中,按兩下 [ 啟動靜態驅動程序驗證程式...]。

  2. 按兩下 [ 規則] 索引標籤 。在 [規則集] 底下,選取 [警告]。

    若要從 Visual Studio 開發人員命令提示字元視窗中選取預設規則集,請使用 /check 選項指定 Warning.sdv。 例如:

    msbuild /t:sdv /p:Inputs="/check:Warning.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
    

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