Compartir a través de


Función MiniDumpWriteDump (minidumpapiset.h)

Escribe información de minivolcado en modo de usuario en el archivo especificado.

Sintaxis

BOOL 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
);

Parámetros

[in] hProcess

Identificador del proceso para el que se va a generar la información.

Este identificador debe tener PROCESS_QUERY_INFORMATION y PROCESS_VM_READ acceso al proceso. Si se va a recopilar información de identificador, también se requiere PROCESS_DUP_HANDLE acceso. Para obtener más información, consulte Derechos de acceso y seguridad de procesos. El autor de la llamada también debe poder obtener THREAD_ALL_ACCESS acceso a los subprocesos del proceso. Para obtener más información, consulte Derechos de acceso y seguridad de subprocesos.

[in] ProcessId

Identificador del proceso para el que se va a generar la información.

[in] hFile

Identificador del archivo en el que se va a escribir la información.

[in] DumpType

Tipo de información que se va a generar. Este parámetro puede ser uno o varios de los valores de la enumeración MINIDUMP_TYPE .

[in] ExceptionParam

Puntero a una estructura de MINIDUMP_EXCEPTION_INFORMATION que describe la excepción de cliente que provocó que se generara el minivolcado. Si el valor de este parámetro es NULL, no se incluye ninguna información de excepción en el archivo minivolcado.

[in] UserStreamParam

Puntero a una estructura de MINIDUMP_USER_STREAM_INFORMATION . Si el valor de este parámetro es NULL, no se incluye información definida por el usuario en el archivo minivolcado.

[in] CallbackParam

Puntero a una estructura MINIDUMP_CALLBACK_INFORMATION que especifica una rutina de devolución de llamada que se va a recibir información de minivolcado extendida. Si el valor de este parámetro es NULL, no se realiza ninguna devolución de llamada.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es TRUE; de lo contrario, el valor devuelto es FALSE. Para recuperar información de error extendida, llame a GetLastError. Tenga en cuenta que el último error será un valor HRESULT .

Si se cancela la operación, el último código de error es HRESULT_FROM_WIN32(ERROR_CANCELLED).

Comentarios

La función MiniDumpCallback recibe información de minidump extendida de MiniDumpWriteDump. También proporciona una manera de que el autor de la llamada determine la granularidad de la información escrita en el archivo minivolcado, ya que la función de devolución de llamada puede filtrar la información predeterminada.

Se debe llamar a MiniDumpWriteDump desde un proceso independiente si es posible, en lugar de hacerlo desde dentro del proceso de destino que se va a volcar. Esto es especialmente cierto cuando el proceso de destino ya no es estable. Por ejemplo, si se bloqueó. Un interbloqueo de cargador es uno de los muchos posibles efectos secundarios de llamar a MiniDumpWriteDump desde el proceso de destino. Si no es posible llamar a MiniDumpWriteDump desde un proceso independiente, es aconsejable tener un subproceso dedicado cuyo único propósito es llamar a MiniDumpWriteDump. Esto puede ayudar a garantizar que la pila no esté agotada antes de la llamada a MiniDumpWriteDump.

Es posible que MiniDumpWriteDump no genere un seguimiento de pila válido para el subproceso que realiza la llamada. Para solucionar este problema, debe capturar el estado del subproceso que realiza la llamada antes de llamar a MiniDumpWriteDumpDump y usarlo como parámetro ExceptionParam . Una manera de hacerlo es forzar una excepción dentro de un bloque __try/__except y usar la información de EXCEPTION_POINTERS proporcionada por GetExceptionInformation. Como alternativa, puede llamar a la función desde un nuevo subproceso de trabajo y filtrar este subproceso de trabajo desde el volcado de memoria.

Todas las funciones DbgHelp, como esta, son un único subproceso. Por lo tanto, es probable que las llamadas desde más de un subproceso a esta función producirán un comportamiento inesperado o daños en la memoria. Para evitarlo, debe sincronizar todas las llamadas simultáneas de más de un subproceso a esta función.

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado minidumpapiset.h (incluir Dbghelp.h)
Library Dbghelp.lib
Archivo DLL Dbghelp.dll; Dbgcore.dll
Redistribuible DbgHelp.dll y Dbgcore.dll

Consulte también

Funciones de DbgHelp

MINIDUMP_CALLBACK_INFORMATION

MINIDUMP_EXCEPTION_INFORMATION

MINIDUMP_USER_STREAM_INFORMATION

MiniDumpCallback

MiniDumpReadDumpStream