Interpreting Static Driver Verifier Results
When you launch Static Driver Verifier from Visual Studio and run an analysis of your driver, the results appear in the Results summary on the Main tab.
Entrypoints Reports the number of entry points found in the driver source code. Entry points are the driver-supplied callback or dispatch routines. You define the entry points using function role type declarations. To perform analysis, SDV must fiind at least one entry point. For more information see, Using Function Role Type Declarations.
Defects found Reports the number of defects found during the analysis. A defect is a violation of a DDI Compliance Rule.
Tests executed Reports the number of rules that were tested during the analysis. These are the rules you select on the Rules tab.
Reports the status of the analysis. When completed, you can review results found.
- Completed (Rule)
SDV tested the driver for violation of the rule but it could not prove any violation of the rule.
This result does not mean that the driver is error free. It means only that SDV could not prove that it violated the rule in the verification pass.
If SDV reported one or more defects, click the Defect link to use the Static Driver Verifier Report to view the trace of the error.
- Not Applicable
SDV tested the driver for violation of the rule, but the driver did not support the entry point that is required for the analysis or the driver did not call the function that the rule monitors.
If the rule monitors a particular argument in a function call (typically, a pointer to a resource) and the driver does not call the function or does not reference that argument, the rule does not apply to the driver.
If the driver does specify the entry points and it does call the functions that the rule monitors, this result might indicate that SDV did not find or did not correctly interpret the entry point. To confirm that this situation occurred, examine and, if necessary, correct the Sdv-map.h file. For information about this procedure, see Scanning the Driver.
For more information about each rule, see the Static Driver Verifier Rules reference.
To examine the driver further, run a verification using different rules.
SDV stopped verifying the rule because it exceeded its time limit for verifying each rule. The time limit is set in the Static Driver Verifier Options File, or in the Maximum time field on the Configuration tab.
A timeout is considered to be an inconclusive result. It does not indicate a driver error. If SDV reports a timeout, extend the time permitted for the verification (the SDV_SlamConfig_Timeout value in the sdv-default.xmlfile) and run the verification again.
- Completed (Property)
SDV ran the driver property rule for the specified driver. A driver property rule checks for driver capabilities or supported features and is a prelude for further analysis. For example, the driver property rule, CancelRoutine, checks to see if the WDM driver has registered a Cancel routine. If a Cancel routine is not detected, specific WDM rules do not apply. This means that the driver property was not satisfied.
- Satisfied (Property)
SDV ran the driver property rule for the specified driver. A driver property rule checks for driver capabilities or supported features and is a prelude for further analysis. For example, the driver property rule, CancelRoutine, checks to see if the WDM driver has registered a Cancel routine. If a Cancel routine is detected, specific WDM rules apply. This means that the driver property was satisfied
The number of rules that SDV stopped verifying because it exceeded the memory limit for verifying the rule. The memory limit is set in the Static Driver Verifier Options File, sdv-default.xml.
A spaceout is considered to be an inconclusive result. If SDV reports a spaceout, extend the space allotted for the verification (the SDV_SlamConfig_Spaceout value in the sdv-default.xml file) and run the verification again.
The number of times that SDV encountered an internal error from which it could not recover.
This result is inconclusive. Use the Send comments about this topic to Microsoft link at the bottom of each WDK Documentation page to report the problem.
SDV has determined that additional analysis might yield useful results. In these cases, SDV automatically generates a rule file called Refine.sdv in the sources directory. This file contains those rules which might benefit from further verification. Follow the instructions in the results summary and type the following commands to continue the analysis:
msbuild /t:sdv /p:"Inputs=/refine" myproj.vcxproj