AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi ISO-Image einer CDDA mit CreateFile und ReadFile möglich?
Thema durchsuchen
Ansicht
Themen-Optionen

ISO-Image einer CDDA mit CreateFile und ReadFile möglich?

Ein Thema von Garfield · begonnen am 3. Nov 2006 · letzter Beitrag vom 23. Dez 2006
 
Muetze1
(Gast)

n/a Beiträge
 
#13

Re: ISO-Image einer CDDA mit CreateFile und ReadFile möglic

  Alt 2. Dez 2006, 11:41
Zitat von himitsu:
Zitat von OldGrumpy:
Beim direkten Lesen von USB-Devices muss darüber hinaus noch der Puffer im Speicher auf Speicherseiten aligned sein, so einen passend plazierten Puffer erhaelt man mittels VirtualAlloc. Ich hatte vor geraumer Zeit auch mal mit diesen Sourcen rumgespielt, dann aber irgendwann keine Zeit mehr gehabt, alles hinzubiegen.
Dem ist ganz nicht so, daß kann ich dir inzwischen bestätigen ... jedenfalls nicht in "aktuellen" Systemen wie XP und 2000.

Laut Muetze1 (ich hoffe er war es) könnte das daran liegen, daß zum Auslesen der Speicher in 'nem bestimmten Bereich ganz weit vorn im RAM liegen muß und demnach Windows wohl über 'nen eigenen Zwischenspeicher geht und dann die Daten erst und deinen Speicher rüberkopiert werden, wobei dort egal ist wo dieser Speicher rumliegt.
Oder so in etwa ... jedenfalls geht es bei mir auch so, ohne aligned Speicher ... ist schon praktisch, wenn man da z.B. auch einfach etwas aus'm Stack nutzen kann und sich die Resourcenschutzblöcke, samt Speicherreservierung/-freigabe spart.
Meine Aussage bezog auf den DMA Transfer, wobei der DMA Baustein keine "grossen" Adressen abkann und nur im unteren 1 MB arbeitet. Daher muss bei der DMA Übertragung der Speicher dort unten liegen. Unter Windows sorgt die WinAPI dafür und kopiert von diesem weiter - und dabei kommt dann kein DMA mehr zum Einsatz und die Adressen können auch "quer" liegen - dieses macht nur wieder den Zugriff der CPU langsamer durch die extra-cyclen die die CPU beim Data-fetch drehen muss...

Virtualisierungen im Sinne des V86 und Protected Modes gelten für die CPU und den Dingen die darauf ablaufen, der DMA Controller hängt aber ausserhalb der CPU im System und kümmert sich soweit selbstständig um die Datenübertragung kann nur mit physikalischen Adressen - und sein Register ist für diese beschränkt.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz