Fonction MiniDumpWriteDump (minidumpapiset.h)
Écrit des informations minidump en mode utilisateur dans le fichier spécifié.
Syntaxe
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
);
Paramètres
[in] hProcess
Handle du processus pour lequel les informations doivent être générées.
Ce handle doit avoir un accès PROCESS_QUERY_INFORMATION et PROCESS_VM_READ au processus. Si les informations de gestion doivent être collectées , PROCESS_DUP_HANDLE accès est également requis. Pour plus d’informations, consultez Traiter les droits de sécurité et d’accès. L’appelant doit également être en mesure d’obtenir THREAD_ALL_ACCESS accès aux threads dans le processus. Pour plus d’informations, consultez Sécurité des threads et droits d’accès.
[in] ProcessId
Identificateur du processus pour lequel les informations doivent être générées.
[in] hFile
Handle du fichier dans lequel les informations doivent être écrites.
[in] DumpType
Type d’informations à générer. Ce paramètre peut être une ou plusieurs des valeurs de l’énumération MINIDUMP_TYPE .
[in] ExceptionParam
Pointeur vers une structure de MINIDUMP_EXCEPTION_INFORMATION décrivant l’exception du client qui a provoqué la génération du minidump. Si la valeur de ce paramètre est NULL, aucune information d’exception n’est incluse dans le fichier minidump.
[in] UserStreamParam
Pointeur vers une structure MINIDUMP_USER_STREAM_INFORMATION . Si la valeur de ce paramètre est NULL, aucune information définie par l’utilisateur n’est incluse dans le fichier minidump.
[in] CallbackParam
Pointeur vers une structure de MINIDUMP_CALLBACK_INFORMATION qui spécifie une routine de rappel qui doit recevoir des informations minidump étendues. Si la valeur de ce paramètre est NULL, aucun rappel n’est effectué.
Valeur retournée
Si la fonction réussit, la valeur de retour est TRUE ; sinon, la valeur renvoyée est FALSE. Pour récupérer des informations d’erreur étendues, appelez GetLastError. Notez que la dernière erreur sera une valeur HRESULT .
Si l’opération est annulée, le dernier code d’erreur est HRESULT_FROM_WIN32(ERROR_CANCELLED)
.
Remarques
La fonction MiniDumpCallback reçoit des informations minidump étendues de MiniDumpWriteDump. Il permet également à l’appelant de déterminer la granularité des informations écrites dans le fichier minidump, car la fonction de rappel peut filtrer les informations par défaut.
MiniDumpWriteDump doit être appelé à partir d’un processus distinct si possible, plutôt qu’à partir du processus cible en cours de vidage. Cela est particulièrement vrai lorsque le processus cible n’est déjà pas stable. Par exemple, s’il vient de se planter. Un blocage de chargeur est l’un des nombreux effets secondaires potentiels de l’appel de MiniDumpWriteDump à partir du processus cible. Si l’appel de MiniDumpWriteDump à partir d’un processus distinct n’est pas possible, il est conseillé d’avoir un thread dédié dont le seul but est d’appeler MiniDumpWriteDump. Cela permet de garantir que la pile n’est pas déjà épuisée avant l’appel à MiniDumpWriteDump.
MiniDumpWriteDump peut ne pas produire de trace de pile valide pour le thread appelant. Pour contourner ce problème, vous devez capturer l’état du thread appelant avant d’appeler MiniDumpWriteDump et l’utiliser comme paramètre ExceptionParam . Pour ce faire, vous pouvez forcer une exception à l’intérieur d’un bloc __try/__except et utiliser les informations EXCEPTION_POINTERS fournies par GetExceptionInformation. Vous pouvez également appeler la fonction à partir d’un nouveau thread de travail et filtrer ce thread de travail à partir du vidage.
Toutes les fonctions DbgHelp, telles que celle-ci, sont à thread unique. Par conséquent, les appels de plusieurs threads à cette fonction entraîneront probablement un comportement inattendu ou une altération de la mémoire. Pour éviter cela, vous devez synchroniser tous les appels simultanés de plusieurs threads vers cette fonction.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Windows |
En-tête | minidumpapiset.h (inclure Dbghelp.h) |
Bibliothèque | Dbghelp.lib |
DLL | Dbghelp.dll ; Dbgcore.dll |
Composant redistribuable | DbgHelp.dll et Dbgcore.dll |
Voir aussi
MINIDUMP_EXCEPTION_INFORMATION