C++ 为Windows 7编译Windows 8微筛选器驱动程序

C++ 为Windows 7编译Windows 8微筛选器驱动程序,c++,visual-studio-2013,driver,wdk,minifilter,C++,Visual Studio 2013,Driver,Wdk,Minifilter,是否可以编译Windows7的MSDN示例中给出的代码?因为它的目标客户端是Windows8。我正在将Visual Studio 2013与WDK 8.1一起使用,示例项目在配置管理器中没有Win7调试/发布。如果可能的话,怎么做?请指导我。我必须做类似的事情(必须为win 7 x64构建更改微过滤器驱动程序)。我刚刚从minispy fs minifilter驱动程序的项目文件中复制了设置,该驱动程序具有正常工作的win7配置。因此,您需要做的是: 在配置管理器中添加名为“Win7调试”的新

是否可以编译Windows7的MSDN示例中给出的代码?因为它的目标客户端是Windows8。我正在将Visual Studio 2013与WDK 8.1一起使用,示例项目在配置管理器中没有Win7调试/发布。如果可能的话,怎么做?请指导我。

我必须做类似的事情(必须为win 7 x64构建更改微过滤器驱动程序)。我刚刚从minispy fs minifilter驱动程序的项目文件中复制了设置,该驱动程序具有正常工作的win7配置。因此,您需要做的是:

  • 在配置管理器中添加名为“Win7调试”的新配置。保存并关闭
  • 在记事本
  • 中打开AVSCAN MimIFILTER C++项目
  • 覆盖项目文件中的这些部分:

    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'" Label="Configuration">
    <TargetVersion>Win7</TargetVersion>
    <UseDebugLibraries>True</UseDebugLibraries>
    <DriverType>WDM</DriverType>
    <PlatformToolset>WindowsKernelModeDriver8.1</PlatformToolset>
    <ConfigurationType>Driver</ConfigurationType>
    </PropertyGroup>
    
    
    <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Win7 Debug|x64'">
    <Link>
      <AdditionalOptions>%(AdditionalOptions) /map</AdditionalOptions>
      <AdditionalDependencies>%(AdditionalDependencies);$(DDK_LIB_PATH)\fltMgr.lib</AdditionalDependencies>
    </Link>
    <ClCompile>
      <TreatWarningAsError>true</TreatWarningAsError>
      <WarningLevel>Level4</WarningLevel>
      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc</AdditionalIncludeDirectories>
      <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN2K_COMPAT_SLIST_USAGE</PreprocessorDefinitions>
      <ExceptionHandling>
      </ExceptionHandling>
    </ClCompile>
    <ResourceCompile>
      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc</AdditionalIncludeDirectories>
      <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN2K_COMPAT_SLIST_USAGE</PreprocessorDefinitions>
    </ResourceCompile>
    <Midl>
      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);..\inc</AdditionalIncludeDirectories>
      <PreprocessorDefinitions>%(PreprocessorDefinitions);_WIN2K_COMPAT_SLIST_USAGE</PreprocessorDefinitions>
    </Midl>
    </ItemDefinitionGroup>
    
    
    Win7
    真的
    波分复用
    WindowsKernelModelDriver8.1
    司机
    %(附加选项)/地图
    %(额外依赖性)$(DDK_LIB_PATH)\fltMgr.LIB
    真的
    四级
    %(额外包括董事会)\股份有限公司
    %(预定义)_WIN2K兼容列表的使用
    %(额外包括董事会)\股份有限公司
    %(预定义)_WIN2K兼容列表的使用
    %(额外包括董事会)\股份有限公司
    %(预定义)_WIN2K兼容列表的使用
    
  • 保存并关闭

  • 在VS中打开并构建
      对于Windows 7或其他版本的操作系统,不需要单独的二进制文件,只需满足一些条件

      驱动程序二进制文件只是普通的可执行文件,就像DLL或EXE一样。他们有一个PE头IAT等

      只要编译后的驱动程序不尝试调用该操作系统不支持的API,您就可以了。 对于这些API或函数,如果您运行的版本通过或支持它们,只需动态加载它们

      所以,只需使用您计划支持的最低版本操作系统编译驱动程序,祝您好运

      干杯,

      Gabriel

      在进行了上述更改后,项目无法加载,可能您缺少了一个xml标记。你能打开项目文件并检查你是否真的丢失了一个吗?在上面的答案中,
      标记缺失。我现在已经添加了。是的,我已经关闭了标签,但问题仍然存在,它无法加载项目