Özel bir akışı bir döküm içine gömdüm (yani UserStreamParam bağımsız değişkenini MiniDumpWriteDump işlevine geçirdim). Şimdi, akışı bir WinDbg uzantısından çıkarmaya çalışıyorum. (MiniDumpReadDumpStream işlevini kullanarak akışı alabildiğimi doğruladığımı unutmayın).WinDbg uzantısından bir kullanıcı akışını nasıl alırım?
DEBUG_REQUEST_READ_USER_MINIDUMP_STREAM isteği ile IDebugAdvanced2::Request yöntemini kullanıyorum. Standart akışlardan veri alıyorum. Örneğin, aşağıdaki kod parçacığı çeşitli bilgi akışının içeriğini doğru şekilde alacaktır.
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);
Ancak, benim kendi akışı alınmaya çalışılırken bir hata (0x80070570, ERROR_FILE_CORRUPT) ve WinDbg çıkışları aynı mesajı .dumpdebug
çıktı bir parçası olarak göründüğünü
Dir entry 11, ??? stream has unknown stream type 6381921
Not sonuçlanacaktır.
Stream 11: type ??? (6381921), size 00000038, RVA 00033FA9
Dir entry 11, ??? stream has unknown stream type 6381921
Sorun nedir? Kullanıcı akışımın içeriğini nasıl alabilirim?
Denediğim şey budur ve çalışmaz (soru durumlarının ikinci kısmı budur). – avakar