IOCTL_VOLUME_READ_PLEX IOCTL (ntddvol.h)
Esegue una lettura su un plex specifico di un volume. Poiché tutti iplexes sono identici, la gestione volumi può recuperare i dati da uno deiplexes di un volume durante una normale operazione di lettura. Il gestore volumi distribuisce le letture tra i plessi di un volume, per bilanciare il carico di I/O sui supporti fisici e ottimizzare le prestazioni di lettura.
Se, tuttavia, un componente dell'applicazione o della modalità kernel deve leggere i dati da un particolare plex anziché lasciare che la gestione volumi ne selezioni una, può usare questo IOCTL per farlo.
Codice principale
Buffer di input
Il chiamante inserisce la struttura VOLUME_READ_PLEX_INPUT, contenente l'offset logico, all'inizio del buffer in Irp-AssociatedIrp.SystemBuffer>.
Lunghezza del buffer di input
Parameters.DeviceIoControl.InputBufferLength nella posizione dello stack I/O di IRP indica le dimensioni, in byte, del buffer di input, che devono essere maggiori o uguali al valore di sizeof(VOLUME_READ_PLEX_INPUT).Buffer di output
Come IRP_MJ_READ, questo IOCTL archivia i dati di lettura nel buffer di memoria passati come elenco di descrittori di memoria (MDL) nel campo Irp-MdlAddress>.
Lunghezza del buffer di output
Lunghezza del buffer.
Blocco dello stato
Se l'operazione ha esito positivo, gestione volumi imposta il campo Stato su STATUS_SUCCESS.
La struttura VOLUME_READ_PLEX_INPUT in Irp-AssociatedIrp.SystemBuffer> ha un membro Length che deve essere allineato su un limite di 512 byte. Se Length non ha l'allineamento corretto, l'operazione ha esito negativo e gestione volumi imposta il campo Stato su VKE_EINVAL.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile a partire da Windows XP. |
Intestazione | ntddvol.h (include Ntddvol.h) |