Hello everyone,
I'm encountering an issue while attempting to compile the MSR driver and create the MSR.sys file following the instructions provided in the WINDOWS_HOWTO.md tutorial from the Intel PCM GitHub repository (https://github.com/intel/pcm/blob/master/doc/WINDOWS_HOWTO.md#compile-the-windows-msr-driver).
I have tried both using the cloned project from the GitHub repository cloned (https://github.com/intel/pcm) and the release zip file from the same repository (https://github.com/intel/pcm/releases), but I encountered the problem in both cases.
I'm following the tutorial's guidance and using the following command:
MSBuild.exe MSR.vcxproj -property:Configuration=Release -property:Platform=x64
When executing the command, I encounter the following error:
Project "D:\Users\firstname.name\pcm-202401\src\WinMSRDriver\MSR.vcxproj" on node 1 (default targets).
C:\Program Files (x86)\Windows Kits\10\build\10.0.22621.0\WindowsDriver.common.targets(314,5): error MSB4044: The "ValidateNTTargetVersion" task has not been assigned a value for the required "ValidNTTarg
andVersions" parameter. [D:\Users\firstname.name\pcm-202401\src\WinMSRDriver\MSR.vcxproj]
Project generation "D:\Users\firstname.name\\pcm-202401\src\WinMSRDriver\MSR.vcxproj" completed (default targets) -- FAILED.
"D:\Users\firstname.name\pcm-202401\src\WinMSRDriver\MSR.vcxproj" (default target) (1) ->
After reviewing my MSR.vcxproj file, I discovered that a path referenced within it does not exist.
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<DebuggerFlavor>DbgengKernelDebugger</DebuggerFlavor>
<IncludePath>C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\um;$(IncludePath)</IncludePath>
</PropertyGroup>
I updated the version from 10.0.14393.0 to 10.0.22621.0 to match the version I have in the MSR.vcxproj file without success.
I did not observe anything intriguing in the WindowsDriver.common.target file, a portion of which is displayed below.
C:\Program Files (x86)\Windows Kits10\build\10.0.22621.0\WindowsDriver.common.targets
<!-- *******************************************************************************************
Makes sure lower nt_target versions cant be linked to higher targert version libs.
******************************************************************************************* -->
<Target Name="ValidateNTTargetVersion" BeforeTargets="ValidateDriverProperties">
<ValidateNTTargetVersion ValidNTTargetVersions = "$(Valid_NTTARGETVERSIONS)"
CurrentNTTargetVersion = "$(_NT_TARGET_VERSION)">
<Output TaskParameter="NTTargetVersionNotValid" PropertyName="UnknownNTTARGETVERSION" />
</ValidateNTTargetVersion>
</Target>
Does anyone have any suggestions or ideas to assist me?
Thank you in advance for your help.