使用這些規則來確認您的驅動程式正確遵循一組一般需求,以正確處理登錄機碼、字串和裝置物件指標。
本節中
| 主題 | 說明 |
|---|---|
#B0 #A1 新增裝置 #A2 #C3 |
AddDevice 規則會指定驅動程式的 AddDevice 常式只有在呼叫 IoCreateDevice 之後才會呼叫 IoAttachDeviceToDeviceStack。 |
DanglingDeviceObjectReference 規則會指定驅動程式會使用 IoGetAttachedDeviceReference 傳回的相同裝置物件指標來呼叫 ObDereferenceObject。 |
|
PnpSameDeviceObject 規則會指定驅動程式會呼叫 IoAttachDeviceToDeviceStack,並具有有效目標裝置物件的指標。 |
|
TargetRelationNeedsRef 規則會指定在處理 TargetDeviceRelation 查詢時,驅動程式的 DispatchPnP 常式會呼叫下列其中一個函式來參考子裝置的 PDO: |
|
UnSafeAllocatePool 是一項重要的安全性規則,可檢查驅動程式是否未使用已取代的 DDI 來配置記憶體。 |
|
ZwRegistryCreate 規則指定呼叫 ZwCreateKey 之後,驅動程式只能在保留登錄機碼的開啟控制碼時呼叫下列登錄函式 (,也就是在任何呼叫 ZwClose 或 ZwDeleteKey 以關閉或刪除登錄機碼的控制碼之前) : |
|
ZwRegistryOpen 規則指定呼叫 ZwOpenKey 之後,驅動程式只會在保留登錄機碼的開啟控制碼時呼叫下列登錄函式 (,也就是在呼叫 ZwClose 或 ZwDeleteKey 之前) : |
選取 [雜項] 規則集
在 Visual Studio Microsoft中選取您的驅動程式專案 (.vcxProj)。 從 驅動程式 選單中,點擊 啟動靜態驅動程式驗證程式…。
按一下 規則 索引標籤。在 [規則集] 底下,選取 [雜項]。
若要從 Visual Studio 開發人員命令提示字元視窗選取預設規則集,請使用 /check 選項指定 Miscellaneous.sdv。 例如:
msbuild /t:sdv /p:Inputs="/check:Miscellaneous.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32如需詳細資訊,請參閱 使用靜態驅動程式驗證器尋找驅動程式中的瑕疵 和 靜態驅動程式驗證器命令(MSBuild)。