Esecuzione dell'I/O dei file di memoria
[La funzionalità associata a questa pagina, I/O dei file multimediali , è una funzionalità legacy. È stato sostituito da Source Reader. lettore di origine è stato ottimizzato per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi Source Reader invece di Multimedia File I/O, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
I servizi di I/O dei file multimediali consentono di trattare un blocco di memoria come file. Ciò può essere utile se si dispone già di un'immagine di file in memoria. I file di memoria consentono di ridurre il numero di condizioni speciali nel codice perché, a scopo di I/O, è possibile gestire i file di memoria come se fossero file basati su disco. È anche possibile usare i file di memoria con gli Appunti.
Come per i buffer di I/O, i file di memoria possono usare la memoria allocata dall'applicazione o dal gestore di I/O dei file. Inoltre, i file di memoria possono essere espandibili o non espandibili. Quando il gestore di I/O del file raggiunge la fine di un file di memoria espandibile, espande il file di memoria in base a un incremento predefinito.
Per aprire un file di memoria, usare la funzionemmioOpen con il parametro szFilename impostato su NULL e il flag MMIO_READWRITE impostato nel parametro dwOpenFlags. Impostare il parametro lpmmioinfo in modo che punti a una struttura MMIOINFO impostata come segue:
- Impostare il membro pIOProc su NULL.
- Impostare il membro fccIOProc su FOURCC_MEM.
- Impostare il membro pchBuffer in modo che punti al blocco di memoria. Per richiedere che il gestore di I/O del file alloca il blocco di memoria, impostare pchBuffer su NULL.
- Impostare il membro cchBuffer alla dimensione iniziale del blocco di memoria.
- Impostare il membro adwInfo sulla dimensione di espansione minima del blocco di memoria. Per un file di memoria non espandibile, impostare adwInfo su NULL.
- Impostare tutti gli altri membri su zero.
Non esistono restrizioni sull'allocazione della memoria da usare come file di memoria non espandibile.