WIN8 WHQL: 'Static Tools Logo' blocked due to SDV can't run on "Hybrid_Drivers"

Hi

This is in continuation of below thread
http://www.osronline.com/showThread.cfm?link=216051

Disposition there was
>>
…SDV WDF rules doesn’t run against hybrid drivers; that use both Wdf and ndis
libraries. Here this driver is an ndis driver, I assume that the driver is
intentionally linked with ndis.lib…
<<

MSDN is also updated to reflect the same
http://msdn.microsoft.com/en-us/library/windows/hardware/hh454212(v=vs.85).aspx says
In addition, to perform the analysis, SDV requires that:
? ?
? The driver does not combine driver models (for example, KMDF with WDM, or KMDF and NDIS).

My drivers are of type kmdf_ndis and kmdf_storport. So how do I get over this i.e. pass the WHQL test and get official WInQual CERTs

  1. Request waiver for the test from MS
  2. Submit DVL logs only with CodeAnalysis logs
    3)Submit DVL logs with CodeAnalysisLogs + (SDV logs that are failing)

Please let me know.

Thx

The test passed when I generated DVL logs even with above
SDV log ‘exception’.
So I am hoping when I submit those logs to WinQual I will have no issue.

Also what is the criteria for CodeAnalyzer logs. Can it have warnings. Below is my sample DVL log. All show up as NOISE warnings on cmdline and the WHQL test passed. so assuming warnings are o.k, but yes will clean them up



















**************

********************

Also I use .INX file to stamp and generate .INF files. I have custom build steps as well. Still figuring out where to fill all those in in VS for build and viewing above warnings in nice clickable GUI.

When ever I run CodeAnalysis from VS11, it just gives all bogus errors, again because of some missing #defines those which are all set properly when run from cmd-line…

SDV works on drivers that are pure KMDF, NDIS, WDM or Storport.

Hybrid driver of the type described here are not supported and the message “Driver type is ‘kmdf_ndis’. This driver type is not supported by SDV” is expected.

Note you can still logo this type of driver as long as you generate the DVL file. We do not require the driver to be “Code Analysis” or SDV clean for logo.

Thanks Conal.

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@yahoo.com
Sent: Tuesday, June 5, 2012 7:01 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] WIN8 WHQL: ‘Static Tools Logo’ blocked due to SDV can’t run on “Hybrid_Drivers”

The test passed when I generated DVL logs even with above SDV log ‘exception’.
So I am hoping when I submit those logs to WinQual I will have no issue.

Also what is the criteria for CodeAnalyzer logs. Can it have warnings. Below is my sample DVL log. All show up as NOISE warnings on cmdline and the WHQL test passed. so assuming warnings are o.k, but yes will clean them up



















**************

********************

Also I use .INX file to stamp and generate .INF files. I have custom build steps as well. Still figuring out where to fill all those in in VS for build and viewing above warnings in nice clickable GUI.

When ever I run CodeAnalysis from VS11, it just gives all bogus errors, again because of some missing #defines those which are all set properly when run from cmd-line…


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

Thanks. I was able to pass the logo test with that DVL file.

When I was adapting my build scripts to generate DVL log on a remote system, I am getting below error. It has VS12RC, WDK8400.
On remote system, I mean I use WDK that is on a share.
Even if I login into the system and do the build (i.e. a local build) I still get below error.
Not sure if this matters that system happens to be a 2k8 server and my machine is my dev-machine - Win7.

>>>>>>
MSBuild.exe my_driver.VcxProj /p:Configuration=“Win8 Release” /p:platform=x64 /t:dvl
Microsoft (R) Build Engine version 4.0.30319.17626
[Microsoft .NET Framework, version 4.0.30319.17626]
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 6/8/2012 1:26:35 AM.
Project “d:\driver\dbusfpd\my_driver.VcxProj” on node 1 (dvl target(s)).
DVL:
dvl.exe
The system cannot execute the specified program.
C:\Program Files (x86)\Windows Kits\8.0\build\WindowsDriver8.0.Sdv.targets(119,9): error MSB3073: The command "dvl.exe " exited with code 9020.

>>>>
Also when I run dvl **** directly*** on my (working) machine I get below.

<vcvars.bat x86_amd64 was called above here etc…>
dvl /create my_Driver_name x64

I am running above in the same dir as my vcxproj.

---------------------------------------------------------------------
Microsoft (R) Windows (R) Static Tools Logo 1.0.0.0
Copyright (C) Microsoft Corporation. All rights reserved.
---------------------------------------------------------------------

/create DriverName DriverArchitecture: Create the DVL log file (invoked in the s
ame directory of the vcxproj file).</vcvars.bat>

I have several observations/suggestions from your message:

  1. dvl.exe needs to be run via msbuild; otherwise, it will not work properly (the message you got from your dev box is expected).
  2. It seems that in your 2k8 server system, msbuild cannot launch dvl.exe correctly. I suspect that it can be a wrong version of .net framework or corrupted WDK installation.

Can you please try to run dvl.exe directly on your 2k8 server system to see if the program launches?

Thanks,
Juncao

Thanks.

I launched DVL.exe directly on the 2k8 machine (my build server) it fails.

Not sure if below matter. Will look at it more and update.

Framework35Version=v3.5
FrameworkDir=C:\Windows\Microsoft.NET\Framework\
FrameworkDIR32=C:\Windows\Microsoft.NET\Framework\
FrameworkDIR64=C:\Windows\Microsoft.NET\Framework64
FrameworkVersion=v4.0.30319
FrameworkVersion32=v4.0.30319
FrameworkVersion64=v4.0.30319

You need .net 4.5 (it comes with the vs install)

d

debt from my phone


From: xxxxx@yahoo.com
Sent: 6/12/2012 5:38 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] WIN8 WHQL: ‘Static Tools Logo’ blocked due to SDV can’t run on “Hybrid_Drivers”

Thanks.

I launched DVL.exe directly on the 2k8 machine (my build server) it fails.

Not sure if below matter. Will look at it more and update.

Framework35Version=v3.5
FrameworkDir=C:\Windows\Microsoft.NET\Framework\
FrameworkDIR32=C:\Windows\Microsoft.NET\Framework\
FrameworkDIR64=C:\Windows\Microsoft.NET\Framework64
FrameworkVersion=v4.0.30319
FrameworkVersion32=v4.0.30319
FrameworkVersion64=v4.0.30319


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

[1]

>Can you please try to run dvl.exe directly on your 2k8 server system to see if
the program launches?

Gives the same error “/create DriverName DriverArchitecture: Create the DVL log file (invoked in the same directory of the vcxproj file).”

[2]
I logged into build server and ran my build scripts. It seem to work. i.e. it is running with same above non 4.5 framework.

Also above system has VS12 RC installed, not sure why the ENV vars still say 3.5.

Above all not sure why the same build works when I login into build server and run, but doesn’t work when I submit through our remote build framework i.e. in the end both are same - same exact commands, same exact .NET/VS/WDK environment is used to do the ultimate build.

>> when I submit through our remote build framework
Can you describe more about it? Is it a network share for WDK or a build server that actually runs the build per request?

Build framework
When we run the builds using the framework, the srcs are pulled on to that system (under admin account) and the individual build batch file gets wrapped in a master batch file (to set up some build vars) and gets executed.
Basically instead of invoking my batch file directly, it gets invoked by another batch file.
Other than that there should be no difference.

My individual batch file is in 2 modes, it can use the WDK on a remote share or WDK that is installed on that local system itself. I am failing even in the later mode.

It seems like a configuration issue.

  1. Does your batch file work on the build server if you run it locally?
  2. If yes to 1., does the master batch file work properly with/without your batch file if you run it locally on your build server?

Thanks Li.
Yes looks like configuration issue.

  1. Does your batch file work on the build server if you run it locally?
    Yes :frowning:

Master batch file is nothing but just a container i.e. it does not set any VS*/MS/WDK ENV variables etc. That master batch file is used to wrap builds that are done even for linux etc.

Yes all points to this master batch file still, so I will dig here more.
Also another driver has no issue it seems, but is is a NDIS miniport, so its SDV runs. Not sure if that is the issue here as my SDV bails out because mine are hybrid drivers. Yes but again running locally on build server works, so probably a config issue.

But do you have any more pointers to debug what this code 9020 means in runtime terms (like DLL not found, this env var not set etc etc…)

DVL:
dvl.exe
The system cannot execute the specified program.
C:\Program Files (x86)\Windows
Kits\8.0\build\WindowsDriver8.0.Sdv.targets(119,9): error MSB3073: The command
"dvl.exe " exited with code 9020.

I will look more and update.

Thanks again.

O.k. I took a look at the master batch file, I can definitely say it doesn’t have any effect here…

I will see if other drivers scucceed DVL when submitted through build framework… I am assuming it will have same issue… That driver is a NDIS miniport and takes a very very long time to complete SDV…

>> That driver is a NDIS
miniport and takes a very very long time to complete SDV…
if you just want to try out, you can use an empty driver project created from the template. :slight_smile:

Other driver shouldn’t make any difference here. The message indicates that dvl.exe is not loaded correctly.

> When we run the builds using the framework, the srcs are pulled on to that
system (under admin account) and the individual build batch file gets wrapped in
a master batch file (to set up some build vars) and gets executed.
This seems no different to running build locally on the build server (except for the evnviroment being set) …

In the failure case, I guess you cannot load dvl.exe directly in your script neither. dvl.exe depends on a dll which should exist in the same folder of the binary. Other dependent libraries should come with .net framework.