Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Level-0 Treiber in FB? / MMSysShot

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 19.02.2007, 16:20    Titel: Level-0 Treiber in FB? / MMSysShot Antworten mit Zitat

Hallöle.

Erstmal: Ich möchte gerne eine art "Screenshot" com Physikalischem Speicher grafisch ausgeben.
Dabei habe ich allerdings folgendes Problem: Ich kann weder auf das MemoryManagmentSystem via API zugreifen, noch kann ich keine Level-0 Treiber schreiben *g* .. zumindest noch nicht ...

Dieses Vorhaben schlug vor ein paar Jahren in meinem Kopf ein, als ich eine Reportage über SuperComputer gesehen habe. Danach habe ich mich auf die suche gemacht, um heraus zu finden, wie man am besten die Tabellen für die Physikalische Speicherbelegung erfahren kann, und bin auf Granit gestossen. Ich fand einfach 0 Informationen darüber, bis vor ca. einem Halben Jahr im ReactOS IRC, als ich mich mit ein paar Programmierer dieses OS unterhalten habe. Dort hat man mir gesagt, das dies (unter Win98SE) NUR möglich sei, wenn man einen Level-0 Treiber schreiben würde. Also .. einen Kernel-nahen Treiber, auf der niedrigsten Ebene. Dort konnte man mir auch ein Tip geben, das die nutzung vom MMS notwendig wär, um das vorhaben zu realisieren, was ich mich auch irgend wie gedacht habe, .. wo sonnst soll die asoziation zwischen VMM und PMM liegen!?!? grinsen

Allerdings bin ich ein VB'ler, der von c / C++ Treiber-Entwicklggn nicht viel Ahnung hat, und gleich 100x weniger in der Level-0 Treiber programmierung.
Daher wollte ich euch mal fragen, ob Ihr irgend welche Ansätze kennt, um den quasi ScreenShot vom PMM zu realisieren.

Dabei soll im MSS (MemoryScreenShot) garnicht drin stehen, was wim MMS für Werte liegen, sondernm ganz simpel, nur ein Boolisches Array, das auskumpft gibt, ob eine Speicheradresse /block belegt ist, oder nicht. Eventuell kann man das ja noch sohingehend erweitern, das statt Boolischer Werte ein byte benutzt wird, in das die Belegte Blockgrösse beschrieben wird. (255 Speicheradressen = 1 Block = 1 Byte = 1 Byte-ArrayWert) Dadurch kann ich dann später eine Grafische Ausgabe realisieren, die .. sagen wir mal im Sekundentakt, die Physikalische belegung darstellt.

Wie allerdings schon gesagt, hab ich nicht wirklich viele ansätze, bei diesem Problem, udn das, was ich weis, ist leider alles auf Level-0 basis .. wie auch aus der MSDN zu entnehmen ist.

Wäre also für JEDEN Tip dankbar ...


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 19.02.2007, 17:29    Titel: Antworten mit Zitat

Hm, komplexes Unterfangen imho. neutral
Aber interessant.

Nundenn, in Win98 einen Treiber einzuschleußen bzw. auf den kompletten Speicher zuzugreifen gestaltet sich einfacher, als es bei NT-Systemen der Fall ist. Womit ich jetzt nicht sagen will, dass es _einfach_ ist. lachen
Auf jeden Fall, wenn du dich selbst in die Materie einarbeiten willst, empfehle ich das DDK (DriverDevelopmentKit) von MS. Weiß nicht, ob das immer noch frei verfügbar ist oder ob das angefordert werden muss. Jedenfalls konnte man sich das mal runterladen, kein Plan, ob das jetzt per Post oder so geschieht...
Jedenfalls enthält das DDK eine Menge Beispiele für Treiber in C (andere Sprachen, es sei denn C++, sind dafür...ähem...weniger geeignet).

Greets,
Mao
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 19.02.2007, 17:45    Titel: Antworten mit Zitat

Genügt es nich, per Kernel32.dll GENAU das Segment zu mappen, in welchem der gewünschte Speicherbereich geht?
Würde sogar unter NT gehn, auch wenn da viele Bereiche geschützt sind.
Ich weiß, dass es diverse Hex-Editoren so machen...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 19.02.2007, 17:46    Titel: Antworten mit Zitat

Das würde vllt. auch gehen - vielleicht?...

Und wie du schon sagtest erhältst du kein genaues Speicherabbild, da immer noch zu viele Segmente "geschützt" sind. neutral
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 19.02.2007, 18:03    Titel: Antworten mit Zitat

@Mao .. das DDK hab ich mir auch schon angesehen, aber soweit ich das noch in Erinnerung habe, kostet das nicht wenig ... traurig

Jo .. das Projekt is in der tat SEHR Interessant .. wollte ich seit dem Bericht unbedingt machen, aber .. wie gesagt, hab dafür nicht genug kentnisse, das ich das mal eben aus dem Finger schnippen kann weinen

Hab jetzt nochmal fix meine alten TXT's durchwühlt, und die entsprechenden links dazu gefunden
>MSDN Memory Management<
Glaube, das waren diese Funktionen:
Zitat:
The following are the AWE functions.
Function Description
AllocateUserPhysicalPages Allocates physical memory pages to be mapped and unmapped within any AWE region of the process.
FreeUserPhysicalPages Frees physical memory pages previously allocated with AllocateUserPhysicalPages.
MapUserPhysicalPages Maps previously allocated physical memory pages at the specified address within an AWE region.
MapUserPhysicalPagesScatter Maps previously allocated physical memory pages at the specified address within an AWE region.

Dabei ist allerdings das >MSDN AWE< nötig, auf das allerdings nur mit einem LEVEL-0 Treiber zugriff zu erlangen ist weinen
Unter anderem war glaub auch >MSDN Virtual Address Space and Physical Storage zur umsetzung von Virtuellem in Physikalischem speicher.

Leider wird hier allerdinsg das Informations-Debakel immer grösser, was mein wissensdurst noch noch mehr erhöht ... udn Finden tut man da auch nicht besondern viel drüber ... verwundert

(kann mich aber auch täuschen .. hab mich damit lange nimmer beschäftigt, aus Informations-Mangel)


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dr. Bakterium



Anmeldungsdatum: 13.09.2007
Beiträge: 13

BeitragVerfasst am: 13.09.2007, 01:14    Titel: Vielleicht gehts damit Antworten mit Zitat

Unter
http://logix4u.net/Parallel_Port/Inpout32.dll_for_Windows_98/2000/NT/XP.html
gibt es eine Art Universal-Kerneltreiber für direkte Speicherzugriffe zum Runterladen.
Auf dieser Seite wird er dazu benutzt, die Speicherzellen für die Kommunikation mit dem Parallel-Port unter Umgehung der Windows-Schutzsysteme, direkt anzusprechen. Theoretisch müßte es mit dem gesamten Hardwarespeicher so funktionieren.

So enthält diese DLL auch nur 2 Funktionen: inportb und outportb
(die Äquivalente von PEEK und POKE - vor allem den älteren Semestern hier dürfte das noch ein Begriff sein lachen )
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 13.09.2007, 04:16    Titel: Antworten mit Zitat

Danke, für deine Antwort. Habe in Freebasic einen einfachen Zugriffstreiber öhnlich der impout32.dll geschrieben.

Allerdings habe ich damit das gleiche problem, wie mit der impout, nämlich, das ich nicht die Physikalische Position mit der Virtuellen Position asozisieren kann.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz