Condividi tramite


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:

  1. Impostare il membro pIOProc su NULL.
  2. Impostare il membro fccIOProc su FOURCC_MEM.
  3. 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.
  4. Impostare il membro cchBuffer alla dimensione iniziale del blocco di memoria.
  5. Impostare il membro adwInfo sulla dimensione di espansione minima del blocco di memoria. Per un file di memoria non espandibile, impostare adwInfo su NULL.
  6. Impostare tutti gli altri membri su zero.

Non esistono restrizioni sull'allocazione della memoria da usare come file di memoria non espandibile.