none
Getting "Driver verifier settings file was not found" during deployment step. RRS feed

  • Question

  • Note that this question refers to replies made to the question of the same title found at http://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/d9a7b496-b659-44b3-bb78-411373cce21a/getting-driver-verifier-settings-file-was-not-found-during-deployment-step?forum=wdk. That thread seems to be inactive, probably because it has been marked answered.

    I am getting "Driver verifier settings file was not found" during deployment step. I applied the answer "on the target machine, add "Authenticated Users" with modify rights on the C:\DriverTest directory tree. Then try provisioning again". The problem persists after applying this answer. After the error occurs I observe that only a file called 000001_~LogDriverVerifierSettings_DriverVerifierSettings.txt is in the C:\DriverTest\Run\WexLogFileOutput directory. 

    The following is the relevant excerpt from the Visual Studio 2013 output window. 

    1>  [14:59:35:690]: Gathering driver verifier settings from machine "OWNER-PC" (TaskId:38)
    1>  [14:59:36:833]: Result Summary: Total=1, Passed=1, Failed=0, Blocked=0, Warned=0, Skipped=0 (TaskId:38)
    1>C:\Program Files (x86)\Windows Kits\8.1\build\x64\ImportAfter\DriverDeployment.targets(69,9): error : Driver verifier settings file was not found

    I am using Visual Studio 2013 and WDK 8.1 on my host. My target is running windows 7 x64.

    Any suggestings on how to solve this "Driver verifier settings file was not found" error would be helpful.

    Thanks

    Wednesday, June 25, 2014 8:05 PM

Answers

  • Good news: I was able to reproduce the issue! It seems like a timing issue, because if I put a breakpoint just before we try to retrieve the *DriverVerifier.txt* files, then everything works as expected.

    I need to investigate more as to what the exact cause is, but in the meantime, you should be able to make things work by disabling the "Enable Driver Verification" option in your driver package properties (under "Configuration Properties\Driver Install\Driver Verification"). If you need to use driver verifier, you can always configure it manually on your target machine with the Verifier utility (see here for more details).


    Max -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Friday, August 8, 2014 7:42 PM

All replies

  • I am still unable to complete driver deployment because of this problem. A possible solution would be for someone to tell me what the DriverDeploymentTasks.dll is doing when it decides to generate the message  "error : Driver verifier settings file was not found". I could then author a Test Authoring and Execution Framework (TAEF) test to perform equivalent actions and run it with the Driver Test Group Explorer. This would allow me to debug the problem.

    Thanks 

    Friday, June 27, 2014 8:22 PM
  • I am still unable to complete driver deployment because of this problem.

    Please Help.

    Thanks

    Saturday, August 2, 2014 8:22 PM
  • In the 8.1 WDK, this error occurs if no file matching the pattern "*VerifierSettings.txt*" can be found on the target machine in the directory "C:\DriverTest\Run\WexLogFileOutput". It's the only location where this error message is ever used.

    One thing that could be going wrong is the access to the file share on the target machine, which is how the host machine actually retrieves the file. Here's what's done, in case that helps:

    1. Directory.GetFiles("\\MACHINE_NAME\DriverTest$\Run\WexLogFileOutput", "*VerifierSettings.txt*")
    2. If the above returns an empty array, the error message you are seeing is outputted

    You might want to try to look at the share path from your host machine (the one that runs VS) to see if you can actually see the VerifierSettings.txt file from there...

    As for what DriverDeploymentTasks.dll does, this is actually a DLL that contains a bunch of TAEF tests that we use for configuration purposes. You can manually run the same task by using the following command line (on your target machine, as administrator), with "C:\DriverTest\Run" as your working directory:

    te DriverTestTasks.dll /name:DriverTestTasks::_LogDriverVerifierSettings

    This will run the same thing that the WDK VS infrastructure runs internally to output the driver verifier settings. We use a more complicated command line for logging purposes, but the above should do the exact same thing functionally.


    Max -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Wednesday, August 6, 2014 6:52 PM
  • I can see the "*VerifierSettings.txt*" file on my target machine. Is it enough to test access with the copy and type commands in the cmd window on my host machine as shown below? My problem persists even with these results. I do not have to run the cmd window as Administrator to get these results.

    C:\Users\francisco_2>copy \\owner-pc\DriverTest$\run\WexLogFileOutput\*.txt .
    \\owner-pc\DriverTest$\run\WexLogFileOutput\000001_~LogDriverVerifierSettings_Dr
    iverVerifierSettings.txt
            1 file(s) copied.

    C:\Users\francisco_2>type \\owner-pc\DriverTest$\run\WexLogFileOutput\*.txt

    \\owner-pc\DriverTest$\run\WexLogFileOutput\000001_~LogDriverVerifierSettings_Dr
    iverVerifierSettings.txt


    0
    0
    0
    Wednesday, August 6, 2014 8:34 PM
  • So it seems like you have access to the share from your host, and you are able to retrieve the file... I'm not sure how this would be failing then.

    Maybe you could try writing a small C# console application with the following code, and see if it works. This is very similar to what is done when the error you see is displayed, so hopefully it will reproduce the same issue.

    string[] verifierFiles = Directory.GetFiles("\\owner-pc\DriverTest$\Run\WexLogFileOutput", "*VerifierSettings.txt*");
    
    if (0 == verifierFiles.Length) 
    {
        throw new FileNotFoundException("Foo");
    }
    else
    {
        File.Copy("\\owner-pc\DriverTest$\Run\WexLogFileOutput", "tempVerifierSettings.txt");
        // If you reach here, you were able to retrieve the file using code similar to what the VS integration does
    }
    


    Max -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Wednesday, August 6, 2014 8:48 PM
  • The code you suggested ran correctly with the changes shown below. My problem still persists.

    using System;
    using System.IO;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace ConsoleApplication2
    {
        class Program
        {
            static void Main(string[] args)
            {
                string[] verifierFiles = Directory.GetFiles("\\\\owner-pc\\DriverTest$\\Run\\WexLogFileOutput", "*VerifierSettings.txt*");

                if (0 == verifierFiles.Length)
                {
                    throw new FileNotFoundException("Foo");
                }
                else
                {
                    File.Copy("\\\\owner-pc\\DriverTest$\\Run\\WexLogFileOutput\\000001_~LogDriverVerifierSettings_DriverVerifierSettings.txt",
                                "tempVerifierSettings.txt"); // If you reach here, you were able to retrieve the file using code similar to what the VS integration does
                } 
            }
        }
    }

    Wednesday, August 6, 2014 9:46 PM
  • Hum, then I only see one possibility: somehow, our VS integration tries to pull the result file before it is actually available on your machine. I'm not quite sure why that would happen though, since the task does seem to run successfully on your target machine.

    There's not much else I can do without having a direct access to your machine, as sadly we don't have helpful logs for this in WDK 8.1.

    I can try to reproduce the issue on my side to see if I can find anything. You mentioned that your target OS is Windows 7 x64, but what OS are you using on your host machine?


    Max -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Wednesday, August 6, 2014 10:10 PM
  • I use Windows 7 x64 on my host machine.

    Thanks for your clear and useful responses.

    Thursday, August 7, 2014 12:35 AM
  • During investigation of your idea that possibly "VS integration tries to pull the result file before it is actually available on your machine" I updated the clock on the host and target machines with time from time.windows.com and as best I can tell both machine clocks are within fractions of a second of each other and both machines are in the same inertial frame so relativistic effects do not apply. I do a clean and build and my problem still persists. Below I show the creation time for "*VerifierSettings.txt*" on the target machine to be 12:20:00 PM. Next the build output on the host machine seems to indicate that the "*VerifierSettings.txt*" file was created sometime after 12:20:45. The target seems to create the file before it is told to create it.

    ******* On the target *******
    C:\DriverTest\Run\WexLogFileOutput>forfiles /c "cmd /c echo @file @ftime" 

    "000001_~LogDriverVerifierSettings_DriverVerifierSettings.txt" 12:20:00 PM
    "filetime.txt" 12:21:04 PM
    "showfiletime.bat" 12:07:08 PM

    ******* On the host *******
    2>  Deploying driver files for project "C:\DriverProjects\KmdfDriverExperimental\KmdfDriverExperimental Package\KmdfDriverExperimental Package.vcxproj".  Deployment may take a few minutes... (TaskId:38)
    2>  [12:20:45:002]: Removing any existing files from test execution folder (TaskId:38)
    2>  [12:20:45:538]: Gathering debugger settings from machine "OWNER-PC" (TaskId:38)
    2>  [12:20:46:709]: Result Summary: Total=1, Passed=1, Failed=0, Blocked=0, Warned=0, Skipped=0 (TaskId:38)
    2>  [12:20:47:098]: Removing any existing files from test execution folder (TaskId:38)
    2>  [12:20:47:559]: Gathering driver verifier settings from machine "OWNER-PC" (TaskId:38)
    2>  [12:20:48:714]: Result Summary: Total=1, Passed=1, Failed=0, Blocked=0, Warned=0, Skipped=0 (TaskId:38)
    2>C:\Program Files (x86)\Windows Kits\8.1\build\x64\ImportAfter\DriverDeployment.targets(69,9): error : Driver verifier settings file was not found
    Thursday, August 7, 2014 4:59 PM
  • Good news: I was able to reproduce the issue! It seems like a timing issue, because if I put a breakpoint just before we try to retrieve the *DriverVerifier.txt* files, then everything works as expected.

    I need to investigate more as to what the exact cause is, but in the meantime, you should be able to make things work by disabling the "Enable Driver Verification" option in your driver package properties (under "Configuration Properties\Driver Install\Driver Verification"). If you need to use driver verifier, you can always configure it manually on your target machine with the Verifier utility (see here for more details).


    Max -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Friday, August 8, 2014 7:42 PM
  • When I disable the "Enable Driver Verification" I get the following error instead.

    3>  Deploying driver files for project "C:\DriverProjects\KmdfDriverExperimental\KmdfDriverExperimental Package\KmdfDriverExperimental Package.vcxproj".  Deployment may take a few minutes... (TaskId:79)
    3>  [09:40:39:235]: Removing any existing files from test execution folder (TaskId:79)
    3>  [09:40:39:868]: Gathering debugger settings from machine "OWNER-PC" (TaskId:79)
    3>  [09:40:41:086]: Result Summary: Total=1, Passed=1, Failed=0, Blocked=0, Warned=0, Skipped=0 (TaskId:79)
    3>  [09:40:41:679]: Removing any existing files from test execution folder (TaskId:79)
    3>MSBUILD : error MSB4166: Child node "2" exited prematurely. Shutting down. Diagnostic information may be found in files in the temporary files directory named MSBuild_*.failure.txt.
    Saturday, August 9, 2014 1:49 PM
  • This error is coming from MSBuild. Did you look at the MSBuild_*failure.txt file to see what the problem could be? I assume it will contain some details as to what went wrong.

    Max -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Monday, August 11, 2014 2:53 PM
  • When this error occurs no MSBuild_*.failure.txt file is created on the host.

    Monday, August 11, 2014 3:50 PM
  • That's weird. I'm not sure what that problem could be. At this point, I'd try the following:

    • Try to disable driver deployment, and see if the same error occurs. If it does, this is a MsBuild issue which the MSBuild folks can probably help you with (see their forum)
    • If the error doesn't occur when driver deployment is disabled, you could always try to deploy a template driver project (such as the default KMDF driver project template provided with the WDK) to see if that works. If it does, there might be a deployment (or verifier) setting that you have enabled in your specific project that is causing that issue. If it still reproduces the same MSBuilds_*failure.txt error, I honestly have no idea what could be going wrong... I would suggest just deploying your driver manually (or by using .kdfiles, if it's a KM driver) if that is the case.


    Max -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Monday, August 11, 2014 4:03 PM