mal wieder nur am richtigen Suchbegriff

per Windows-API lösen, deshalb hier.
Um zu Testzwecken "schön langsam" zu sein schliesse ich einen USB-Stick über
einen alten USB-Repeater an. (max 1MB/s schreiben/lesen) Darauf befindet sich ein Testfile von ca. 30MB.
Bei Schreiben zum Stick (z.B. per WriteData aus dem Speicher) stellt sich auch immer
die erwartete Geschwindigkeit von knapp 1 MB/s ein. Auch bei Wiederholungen.
(Bei meiner internen SATA-HD gibts aber auch hier schon Phantasiewerte bis 500MB/s, ist jetzt aber egal.)
Aaaber beim Lesen :
Code: Alles auswählen
*MemID = AllocateMemory(1048576*32) ; 32MB reservieren
filenr= OpenFile(#PB_Any, "G:\Testfile") ; Inklusive Pfad
;FlushFileBuffers(filenr) ; Bringt nix (?)
;FileBuffersSize(filenr, 0) ; Bringt nix (?)
Debug "Datei geöffnet"
length = Lof(filenr) : Debug length
If filenr
wb=ReadData(filenr, *MemID, length) ; Datei in Speicherblock schreiben
EndIf
Debug "Datei gelesen"
Debug PeekS(*MemID,200)
CloseFile(filenr)
Debug CRC32FileFingerprint("G:\Testfile")
Beim weiteren Starts liegen dazwischen nur Sekundenbruchteile. Genauso beim Lesen via CRC32FileFingerprint.
Ergo fliessen über die physikalisch langsame USB-Verbindung keine Daten. Aber eben das möchte ich erzwingen.
Auch ein Umbenennen des Testfile oder ändern von Bytes im Testfile per Hexeditor ändern da nichts,
wenngleich die Hexeditor-Änderungen danach korrekt eingelesen wurden. Win7-Vodoo

Kann man da was machen, ausser Gigabyte-grosse Files zu verwenden ?