Ausführen von Speicherdatei-E/A
Mit den E/A-Diensten für Multimediadateien können Sie einen Speicherblock als Datei behandeln. Dies kann hilfreich sein, wenn Sie bereits über ein Dateiimage im Arbeitsspeicher verfügen. Mit Speicherdateien können Sie die Anzahl von Sonderfällen in Ihrem Code reduzieren, da Sie Speicherdateien für E/A-Zwecke so behandeln können, als wären sie datenträgerbasierte Dateien. Sie können auch Speicherdateien mit der Zwischenablage verwenden.
Wie bei E/A-Puffern können Speicherdateien Arbeitsspeicher verwenden, der von der Anwendung oder vom Datei-E/A-Manager zugewiesen wird. Darüber hinaus können Speicherdateien entweder erweiterbar oder nicht erweiterbar sein. Wenn der Datei-E/A-Manager das Ende einer erweiterbaren Speicherdatei erreicht, wird die Speicherdatei um ein vordefiniertes Inkrement erweitert.
Verwenden Sie zum Öffnen einer Speicherdatei die mmioOpen-Funktion , wobei der parameter szFilename auf NULL und das im dwOpenFlags-Parameter festgelegte MMIO_READWRITE-Flag festgelegt ist. Legen Sie den lpmmioinfo-Parameter so fest, dass er auf eine MMIOINFO-Struktur verweist, die wie folgt eingerichtet wurde:
- Legen Sie das pIOProc-Element auf NULL fest.
- Legen Sie das fccIOProc-Element auf FOURCC_MEM fest.
- Legen Sie den pchBuffer-Member so fest, dass er auf den Speicherblock zeigt. Um anzufordern, dass der Datei-E/A-Manager den Speicherblock zuordnet, legen Sie pchBuffer auf NULL fest.
- Legen Sie den cchBuffer-Member auf die Anfangsgröße des Speicherblocks fest.
- Legen Sie das adwInfo-Element auf die minimale Erweiterungsgröße des Speicherblocks fest. Legen Sie für eine nicht erweiterbare Speicherdatei adwInfo auf NULL fest.
- Legen Sie alle anderen Member auf 0 (null) fest.
Es gibt keine Einschränkungen bei der Zuweisung von Arbeitsspeicher für die Verwendung als nicht erweiterbare Speicherdatei.