2016-06-19 2 views
0

Je dois créer des vidages complets de la mémoire et du noyau en utilisant un pilote en mode noyau dans Windows.Création d'un vidage de noyau Windows à l'aide de C (pilote en mode noyau)

Tout comme la commande .dump utilise WinDBG, mais je dois le faire dans mon code.

Des idées, comment faire?

+1

[MiniDumpWriteDump] (https://msdn.microsoft.com/fr-fr/library/windows/desktop/ms680360.aspx). Absolument doit être appelé hors de son contexte, sauf si vous êtes bien dans l'impasse de votre processus. – IInspectable

+1

@IInspectable: Je crois que cela produit un vidage en mode utilisateur (c'est-à-dire, un seul processus) plutôt qu'un vidage de la mémoire du noyau? –

+0

@HarryJohnston: Il est vrai que j'ai raté le fait que l'OP demandait un vidage du noyau. 'MiniDumpWriteDump' est en effet strictement une API en mode utilisateur, qui ne videra pas la mémoire du noyau, les threads, les modules ou les traces de pile du noyau. – IInspectable

Répondre

1

Je pense qu'il n'y a pas de bonne façon de le faire. Vous pourriez simplement générer un BSOD à travers KeBugCheck() sur un système correctement configuré. Il repose sur une méthode non documentée IoWriteCrashDump() que vous pourriez vouloir étudier également.