Freigeben über


WdbgExts-Speicherzugriff

Dieses Thema bietet eine kurze Übersicht darüber, wie der Arbeitsspeicherzugriff mithilfe der WdbgExts-API ausgeführt werden kann. Eine Übersicht über den Arbeitsspeicherzugriff in der Debugger-Engine finden Sie unter Arbeitsspeicher im Abschnitt Übersicht über die Debugger-Engine dieser Dokumentation.

Virtueller Arbeitsspeicher

Der virtuelle Arbeitsspeicher des Ziels kann mithilfe der ReadMemory-Funktion gelesen und mit der WriteMemory-Funktion geschrieben werden. Zeiger im Speicher des Ziels können mit den Funktionen ReadPointer, ReadPtr und WritePointer gelesen und geschrieben werden.

Um den virtuellen Arbeitsspeicher nach einem Bytemuster zu durchsuchen, verwenden Sie die SearchMemory-Funktion .

Die TranslateVirtualToPhysical-Funktion kann verwendet werden, um eine virtuelle Speicheradresse in eine physische Speicheradresse zu konvertieren.

Die Disasm-Funktion kann verwendet werden, um eine einzelne Assemblyanweisung für das Ziel zu disassemblieren.

Verwenden Sie den Ioctl-VorgangIG_LOWMEM_CHECK, um die geringen 4 GB Arbeitsspeicher bei Verwendung der physischen Adresserweiterung (PAE) auf Beschädigung zu überprüfen.

Physischer Arbeitsspeicher

Auf den physischen Arbeitsspeicher kann nur beim Debuggen im Kernelmodus direkt zugegriffen werden.

Der physische Arbeitsspeicher auf dem Ziel kann mithilfe der Funktionen ReadPhysical und ReadPhysicalWithFlags gelesen und mit den Funktionen WritePhysical und WritePhysicalWithFlags geschrieben werden.

Verwenden Sie den Ioctl-VorgangIG_POINTER_SEARCH_PHYSICAL, um den physischen Speicher nach Zeigern auf Standorte innerhalb eines angegebenen Bereichs zu durchsuchen.

Andere Datenplätze

Beim Debuggen im Kernelmodus ist es möglich, zusätzlich zum Standard Arbeitsspeicher Daten in eine Vielzahl von Datenbereichen zu lesen und zu schreiben. Auf die folgenden Datenräume kann zugegriffen werden:

Speicher mit Kontrollspeicher
Die Funktionen ReadControlSpace, ReadControlSpace64, ReadTypedControlSpace32 und ReadTypedControlSpace64 lesen Daten aus einem Steuerraum. Die WriteControlSpace-Funktion schreibt Daten in einen Steuerbereich.

E/A-Speicher
Die Funktionen ReadIoSpace, ReadIoSpace64, ReadIoSpace64, ReadIoSpaceEx64 lesen Daten aus dem System-E/A-Speicher und dem Bus-E/A-Speicher. Die Funktionen WriteIoSpace, WriteIoSpace64, WriteIoSpaceEx und WriteIoSpaceEx64 schreiben Daten in den System-E/A-Speicher und den Bus-E/A-Speicher.

Modellspezifisches Register (MSR)
Die Funktionen ReadMsr und WriteMsr Lese- und Schreibzugriffs-MSRs.

System Bus
Die Ioctl-VorgängeIG_GET_BUS_DATA und IG_SET_BUS_DATA Systembusdaten lesen und schreiben.

Weitere Informationen

Eine leistungsfähigere Speicherzugriffs-API finden Sie unter Arbeitsspeicherzugriff im Abschnitt Verwenden der Debugger-Engine-API dieser Dokumentation.