locked
SDV failure - StorPortFindAdapter rule RRS feed

  • Question

  • I'm running SDV against my Storport miniport driver. I'm in VS 2013/WDK 8.1
    My project configuration is Win8 Release/x64
    I have a failure in the StorPortFindAdapter rule that I can't figure out.

    The test succeeds if I use the following values:
    ConfigInfo->MaximumTransferLength = 131072
    ConfigInfo->NumberOfPhysicalBreaks = 131072 / 4096

    But, if I use the following code, the test fails:
    ConfigInfo->MaximumTransferLength = 131072; 
    ConfigInfo->NumberOfPhysicalBreaks = ConfigInfo->MaximumTransferLength / 4096; 
    temp = ConfigInfo->NumberOfPhysicalBreaks;  (At this point, according to the SDV report's state window, 
    "ConfigInfo->NumberOfPhysicalBreaks=-1.")

    Any help would be appreciated.

    Tuesday, February 4, 2014 6:41 PM

Answers

  • Hi my name is Conal McGarvey and I would on the SDV product at Microsoft.

    This issue you describe looks like a bug in SDV. Right now we are investigating this issue. In order to unblock you I would suggest you add the following __analysis_assume to your code.

       

    ConfigInfo->NumberOfPhysicalBreaks = ConfigInfo->MaximumTransferLength / 4096;

    __analysis_assume(ConfigInfo->NumberOfPhysicalBreaks == 131072 / 4096);

    SDV should report a rule pass for StorPortFindAdapter after doing this.

    Thanks Conal.

    Tuesday, February 4, 2014 9:36 PM

All replies

  • Hi my name is Conal McGarvey and I would on the SDV product at Microsoft.

    This issue you describe looks like a bug in SDV. Right now we are investigating this issue. In order to unblock you I would suggest you add the following __analysis_assume to your code.

       

    ConfigInfo->NumberOfPhysicalBreaks = ConfigInfo->MaximumTransferLength / 4096;

    __analysis_assume(ConfigInfo->NumberOfPhysicalBreaks == 131072 / 4096);

    SDV should report a rule pass for StorPortFindAdapter after doing this.

    Thanks Conal.

    Tuesday, February 4, 2014 9:36 PM
  • I put in the suggested change - the result is now "Give up". 

    I read elsewhere that is considered "No defect found" or "Rule pass". So this is good with me for now. I'll look forward to the final fix. Thanks for the help

    Tuesday, February 4, 2014 10:19 PM