DDI 使用量規則集 (NDIS)
使用這些規則來確認您的驅動程序正確使用 NDIS DDI。
本節內容
主題 | 描述 |
---|---|
Init_DeRegisterInterrupt規則會指定如果在 MPInitilize 期間至少呼叫 NdisMRegisterInterruptEx 一次,則應該在 MPHaltEx 中至少呼叫 NdisMDeregisterInterruptEx 一次。 |
|
Init_NdisAllocateIoWorkItem規則會指定,如果在MiniportInitializeEx期間至少呼叫 NdisAllocateIoWorkItem 一次,NdisFreeIoWorkItem 函式應該:
|
|
Init_RegisterInterrupt規則會指定在初始化期間通常會在初始化期間發生的中斷註冊,如果在初始化過程中發生錯誤,或在停止迷你埠驅動程式期間發生錯誤,則必須復原。 如果在 MiniportInitializeEx 期間至少呼叫 NdisMRegisterInterruptEx,則必須在 MiniportHaltEx 中至少呼叫一次 NdisMDeregisterInterruptEx 函式。 |
|
Init_RegisterSG規則會指定散佈收集清單的註冊 (SG) ,通常發生在初始化期間,如果在初始化過程中發生錯誤,或在迷你埠驅動程式停止期間發生錯誤,則必須復原。 如果在 MiniportInitializeEx 期間至少呼叫 NdisMRegisterScatterGatherDma,則 NdisMDeregisterScatterGatherDma 函式應該至少在 MiniportHaltEx 中呼叫一次。 |
|
篩選驅動程序必須從 FilterDriverUnload 例程呼叫 NdisFDeregisterFilterDriver。 |
|
在 NdisMDeregisterInterruptEx 傳回控件之後,迷你埠驅動程式無法呼叫 NdisMSynchronizeWithInterruptEx 函式。 |
|
NullCheck 規則會確認驅動程式程式代碼內的 NULL 值稍後不會在驅動程式中取消參考。 如果下列任一條件成立,此規則會報告瑕疵:
使用 NullCheck 規則違規時,追蹤樹狀結構窗格中會醒目提示最相關的程式代碼語句。 如需使用報表輸出的詳細資訊,請參閱 靜態驅動程序驗證器報表 和 了解追蹤查看器。 |
若要選取 DDI 使用規則集
在 Microsoft Visual Studio 中選取驅動程式項目 (.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) 。