sli*_*kin 7 c windows debugging kernel visual-studio
我正在尝试设置Windows VM的环境以调试内核驱动程序。
我在 Visual Studio 2017 中创建了一个内核驱动程序示例。文件->新建项目->内核模式驱动程序(基本项目;仅用于测试-自动生成的跟踪宏、所需程序等)并希望在目标机器上对其进行测试。
有我的步骤(目标机器):
使用参数运行跟踪日志(GUID 是由模板生成的;没有通过Tools->Create 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
打开事件查看器。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 怎么样 - 我在这个主题中读到这些文件可能会被遗漏。
感谢@magicandre1981。我通过PnPUtil安装了我的驱动程序。但是现在,我在pnputil /enum-drivers命令的列表中看到了它。
但是当我在WinDbg 中运行以下命令时,我没有在列表中看到我的驱动程序:
!load wdfkd.dll
!wdfkd.wdfldr
Run Code Online (Sandbox Code Playgroud)
我正在尝试从这个 Microsoft ttutoriall 中制作 Session 1 的步骤。
我通过Tracefmt生成器和TraceView应用程序找到了解决方案。
\n\n步骤0:通过命令生成tmf文件:
\n\ntracefmt \xd0\xa1:\\TestDriver\\TestKernelDriver2\\TestKernelDriver2.etl -i \xd0\xa1:\\TestDriver\\TestKernelDriver2\\TestKernelDriver2.sys -r \xd0\xa1:\\TestDriver\\TestKernelDriver2\\TestKernelDriver2 -p \xd0\xa1:\\TestDriver\\TestKernelDriver2\\tmfs -o \xd0\xa1:\\TestDriver\\TestKernelDriver2\\TestKernelDriver2.txt -v\n
Run Code Online (Sandbox Code Playgroud)\n\n第 1 步:在 TraceView 中创建会话:\n文件->创建新会话。填写手动输入的控件 GUID。(0f4fbb98-1569-495b-88d1-f654b1e2d68e)
\n\n步骤2:选择WPP格式信息的来源(设置TMF搜索路径选项)并填写路径:C:\\DriverTest\\TestKernelDriver2\\tmfs
\n\n步骤3:接下来,填写日志会话名称并选中实时显示。结束。
\n\n\n 归档时间: |
|
查看次数: |
3081 次 |
最近记录: |