Описание формата DMP

Тема в разделе "WASM.NT.KERNEL", создана пользователем NeuronViking, 18 май 2009.

  1. NeuronViking

    NeuronViking New Member

    Публикаций:
    0
    Регистрация:
    29 окт 2004
    Сообщения:
    476
    Адрес:
    где-то в Сиднее
    Great - спасибо за статью!

    Люди добрые поделитесь сслыками на ресурсы, рассказывабщие о том, что и куда пишет система при KeBugCheck и что из этого и в каком формате попадает в memory.dmp после ребута?
    Хочу собрать и проработать побольше информации об этих вопросах...

    Спасибо!
     
  2. NeuronViking

    NeuronViking New Member

    Публикаций:
    0
    Регистрация:
    29 окт 2004
    Сообщения:
    476
    Адрес:
    где-то в Сиднее
    Great, ты не мог бы здесь скопипастить кодес как ты получаешь KD_DEBUGGER_DATA_BLOCK по-человечески, а то чет твоя страничка в дауне. Пока буду использовать KeCapturePersistentThreadState для этого...
     
  3. NeuronViking

    NeuronViking New Member

    Публикаций:
    0
    Регистрация:
    29 окт 2004
    Сообщения:
    476
    Адрес:
    где-то в Сиднее
    вопрос снят - нашел в кэше ;) Спасибо!
     
  4. NeuronViking

    NeuronViking New Member

    Публикаций:
    0
    Регистрация:
    29 окт 2004
    Сообщения:
    476
    Адрес:
    где-то в Сиднее
    как правильно расчитать размер страничного файла чтобы вместился крэш дамп в зависимости от его типа? с минидампом все понятно, а вот для ядрового и полного не вижу простых решений...
     
  5. NeuronViking

    NeuronViking New Member

    Публикаций:
    0
    Регистрация:
    29 окт 2004
    Сообщения:
    476
    Адрес:
    где-то в Сиднее
    слушай Great, я тут один интересный файлик нашел E:\DDK\IFS\inc\wxp\wdbgexts.h
    посмотри, может тебе он тоже будет интересен:

    typedef struct _DBGKD_GET_VERSION64 {
    USHORT MajorVersion;
    USHORT MinorVersion;
    USHORT ProtocolVersion;
    USHORT Flags;
    USHORT MachineType;

    //
    // Protocol command support descriptions.
    // These allow the debugger to automatically
    // adapt to different levels of command support
    // in different kernels.
    //

    // One beyond highest packet type understood, zero based.
    UCHAR MaxPacketType;
    // One beyond highest state change understood, zero based.
    UCHAR MaxStateChange;
    // One beyond highest state manipulate message understood, zero based.
    UCHAR MaxManipulate;

    // Kind of execution environment the kernel is running in,
    // such as a real machine or a simulator. Written back
    // by the simulation if one exists.
    UCHAR Simulation;

    USHORT Unused[1];

    ULONG64 KernBase;
    ULONG64 PsLoadedModuleList;

    //
    // Components may register a debug data block for use by
    // debugger extensions. This is the address of the list head.
    //
    // There will always be an entry for the debugger.
    //

    ULONG64 DebuggerDataList;

    } DBGKD_GET_VERSION64, *PDBGKD_GET_VERSION64;

    и т.д.
     
  6. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Да я про эту структуру что-то на хоумпейдже выкладывал вроде.

    см. статью про KeCapturePersistentThreadState, которая была позже, чем про дампы.

    Ну посмотри как в статье высчитывается размер дампа. Через MmPhysicalMemoryDescriptor

    Пожалуйста)

    В том самом, который описан в статье. И он совпадает с тем же, в котором он пишется в пейджфайл