使用這些規則來確認您的驅動程式正確使用 NDIS DDI。
本節中
| 主題 | 說明 |
|---|---|
Init_DeRegisterInterrupt 規則規定,如果在 MPInitialize 期間至少呼叫一次 NdisMRegisterInterruptEx,則在 MPHaltEx 中應至少呼叫一次 NdisMDeregisterInterruptEx。 |
|
Init_NdisAllocateIoWorkItem規則會指定如果在 MiniportInitializeEx 期間至少呼叫 NdisAllocateIoWorkItem 一次,則 NdisFreeIoWorkItem 函式應該:
|
|
Init_RegisterInterrupt規則會指定如果初始化程式或迷你埠驅動程式停止期間發生錯誤,則必須復原通常在初始化期間發生的中斷註冊。 如果在 MiniportInitializeEx 期間呼叫 NdisMRegisterInterruptEx 至少一次,則必須在 MiniportHaltEx 中呼叫 NdisMDeregisterInterruptEx 函式至少一次。 |
|
Init_RegisterSG規則規定,若在初始化過程中或在中止迷你端口驅動程式時出現問題,必須復原通常在初始化期間進行的分散收集清單(SG)註冊。 如果在 MiniportInitializeEx 期間呼叫 NdisMRegisterScatterGatherDma 至少一次,則應該在 MiniportHaltEx 中呼叫 NdisMDeregisterScatterGatherDma 函式至少一次。 |
|
篩選驅動程式必須從其 FilterDriverUnload 常式呼叫 NdisFDeregisterFilterDriver。 |
|
在 NdisMDeregisterInterruptEx 傳回控制之後,迷你埠驅動程式無法呼叫 NdisMSynchronizeWithInterruptEx 函式。 |
|
NullCheck 規則會驗證驅動程式程式碼中的 NULL 值稍後在驅動程式中不會被解引用。 如果下列任一條件為true,則此規則會報告缺陷:
如果 NullCheck 規則違規,最相關的程式碼陳述式會在追蹤樹狀結構窗格中醒目提示。 如需使用報表輸出的詳細資訊,請參閱 靜態驅動程式驗證器報表 和 瞭解追蹤檢視器。 |
選取 DDI 使用規則集
在 Visual Studio Microsoft中選取您的驅動程式專案 (.vcxProj)。 從 驅動程式 選單中,點擊 啟動靜態驅動程式驗證程式…。
按一下 規則 索引標籤。在 [規則集] 底下,選取 [DDIUsage]。
若要從 Visual Studio 開發人員命令提示字元視窗選取預設規則集,請使用 /check 選項指定 DDIUsage.sdv。 例如:
msbuild /t:sdv /p:Inputs="/check:DDIUsage.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32如需詳細資訊,請參閱 使用靜態驅動程式驗證器尋找驅動程式中的瑕疵 和 靜態驅動程式驗證器命令(MSBuild)。