Есть ли способ узнать идентификатор потока в другом процессе, который вызывает исключение?

Я пытаюсь использовать MiniDumpWriteDump () API для сброса сбойного процесса B из другого процесса A. Я делаю это, потому что MSDN сказал так:

MiniDumpWriteDump следует вызвать из отдельного процесса, если вообще возможно, а не изнутри целевой процесс выгружается.

MiniDumpWriteDump () определяется следующим образом:

BOOL WINAPI MiniDumpWriteDump(
  __in  HANDLE hProcess,
  __in  DWORD ProcessId,
  __in  HANDLE hFile,
  __in  MINIDUMP_TYPE DumpType,
  __in  PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam,
  __in  PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,
  __in  PMINIDUMP_CALLBACK_INFORMATION CallbackParam
);

В частности, ExceptionParam имеет тип PMINIDUMP_EXCEPTION_INFORMATION , который определяется следующим образом:

typedef struct _MINIDUMP_EXCEPTION_INFORMATION {
  DWORD               ThreadId;
  PEXCEPTION_POINTERS ExceptionPointers;
  BOOL                ClientPointers;
} MINIDUMP_EXCEPTION_INFORMATION, *PMINIDUMP_EXCEPTION_INFORMATION;

Теперь мне интересно, как подготовьте следующие 2 параметра:

ThreadId Идентификатор потока, генерирующего исключение.

ExceptionPointers Указатель на структуру EXCEPTION_POINTERS, определяющую компьютерно-независимое описание исключения и контекст процессора во время исключения.

Как я могу получить идентификатор сбойного потока и указатели исключений в процессе B во время работы в процессе A?

Спасибо.

6
задан smwikipedia 4 November 2010 в 09:04
поделиться