ava*_*kar 5 c++ com windbg dbgeng
我在转储中嵌入了一个自定义流(即将UserStreamParam参数传递给MiniDumpWriteDump函数).现在,我正在尝试从WinDbg扩展中提取流.(请注意,我已经验证我可以使用MiniDumpReadDumpStream函数检索流).
我正在使用带有DEBUG_REQUEST_READ_USER_MINIDUMP_STREAM请求的IDebugAdvanced2 :: Request方法.我能够从标准流中检索数据.例如,以下代码段将正确检索misc信息流的内容.
DEBUG_READ_USER_MINIDUMP_STREAM rums = {};
rums.StreamType = MiscInfoStream;
rums.Buffer = &buf;
rums.BufferSize = sizeof buf;
hr = p->Request(DEBUG_REQUEST_READ_USER_MINIDUMP_STREAM,
&rums, sizeof rums, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)
但是,尝试检索我自己的流将导致错误(0x80070570,ERROR_FILE_CORRUPT)和WinDbg输出
Dir entry 11, ??? stream has unknown stream type 6381921
Run Code Online (Sandbox Code Playgroud)
请注意,相同的消息显示为.dumpdebug
输出的一部分.
Stream 11: type ??? (6381921), size 00000038, RVA 00033FA9
Dir entry 11, ??? stream has unknown stream type 6381921
Run Code Online (Sandbox Code Playgroud)
问题是什么?如何检索用户流的内容?
即使未经测试,如果您使用自定义值(大于 LastReservedStream = 0xFFFF)而不是 MiscInfoStream 填充 StreamType,它也应该可以工作。