Wie kann ein Windows-Kernel-Modus-Treiber auf den ausgelagerten Speicher zugreifen?

1) Ein Usermode-Prozess verfügt über einen eigenen "Adresskontext", der die virtuellen Adressen im Benutzermodus einer eindeutigen Sammlung physischer Seitenrahmen zuordnet. Das ist,Die Bedeutun einer bestimmten virtuellen Adresse ändert sich von einem Moment zum nächsten, wenn der Windows XP-Scheduler Threads wechselt.

Teil der Arbeit beim "Wechseln von Threads" ist es, die Seitentabellen so zu ändern, dass sie auf den Prozesskontext des eingehenden Threads verweisen.

_

2) Ein Windows-Kernelmodustreiber wird im "beliebigen Thread-Kontext" ausgeführt.

Ein Treiber erstellt möglicherweise einen Systemthread und arbeitet in seinem Kontext. Ich spreche jedoch von der Situation, in der kein Systemthread erstellt wird.

Driver kann "ExAllocatePoolWithTag" verwenden, um ausgelagerten Speicher (Speicher in flüchtigem Speicher) zuzuweisen.

_

3) Wie greift der Treiber auf den ausgelagerten Speicher zu?ohne jeglichen Kontext?

ie in Punkt 1 zu sehen, wird auf das ausgelagerte Mem über Seitentabellen zugegriffen, die "kontextspezifisch" sin

wenn der Treiber in einem anderen Thread-Kontext ausgeführt wird ... d.h. Seitentabelleneinträge zeigen auf die relevanten Themen. mem, wie kann der Fahrer dann auf seinen ausgelagerten Speicher zugreifen?

PS: Ich bin noch kein Kernel-Programmierer. Werd nicht sauer.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage