我正在尝试设置 Windows VM的环境以调试内核驱动程序。
我在Visual Studio 2017中创建了一个内核驱动程序示例。文件->新建项目->内核模式驱动程序(基本项目;仅用于测试-自动生成的跟踪宏,所需的程序等),并想在目标计算机上对其进行测试。
有我的步骤(目标计算机):
使用参数运行tracelog(GUID由模板生成;不通过工具->创建GUID 进行)-成功:
tracelog -start TestKernelDriver2 -guid #0f4fbb98-1569-495b-88d1-f654b1e2d68e -f C:\DriverTest\TestKernelDriver2\traces\trace.etl -flag 2 -level 0xFFFF
检查C:\ DriverTest \ TestKernelDriver2 \ traces \ trace.etl; (存在- 64KB 大小)
停止跟踪日志-成功:
tracelog -stop TestKernelDriver2
打开Event Viewer。 Windows日志->系统。最后一个错误:
The TestKernelDriver2 service failed to start due to the following error:
The specified procedure could not be found.
Details:
EventData
param1 TestKernelDriver2
param2 %%127
54006500730074004B00650072006E0065006C0044007200690076006500720032000000
我如何找出错过了什么程序?
我试图通过Dependency Walker对其进行调查,结果发现缺少某些 .sys 文件( WppRecorder.sys , WdfLdr.sys , msrpc.sys , EXT-MS-WIN- ### .DLL )。这些文件位于C:\ Windows \ System32 \ drivers中。我将文件复制到C:\ Windows \ System32, Dependency Walker 平静下来。 EXT-MS-WIN-*。DLL怎么办?我在this topic中读到,这些文件可能会丢失。
感谢@ magicandre1981。我通过PnPUtil安装了驱动程序。但是现在,我在 pnputil / enum-drivers 命令的列表中看到了它。
但是当我在 WinDbg 中运行以下命令时,在列表中没有看到我的驱动程序:
!load wdfkd.dll
!wdfkd.wdfldr
我正在尝试从this Microsoft ttutoriall开始会话1的操作。
答案 0 :(得分:0)
我通过tracefmt生成器和TraceView应用程序找到了解决方案。
步骤0 :通过命令生成tmf文件:
tracefmt С:\TestDriver\TestKernelDriver2\TestKernelDriver2.etl -i С:\TestDriver\TestKernelDriver2\TestKernelDriver2.sys -r С:\TestDriver\TestKernelDriver2\TestKernelDriver2 -p С:\TestDriver\TestKernelDriver2\tmfs -o С:\TestDriver\TestKernelDriver2\TestKernelDriver2.txt -v
步骤1 :在TraceView中创建会话: 文件-> 创建新会话。填写手动输入的控制GUID 。 ( 0f4fbb98-1569-495b-88d1-f654b1e2d68e )
第2步:选择WPP格式信息的来源(设置TMF搜索路径选项)并填写路径: C:\ DriverTest \ TestKernelDriver2 \ tmfs
第3步:下一步,填写日志会话名称,然后选中实时显示。 完成。