Condividi tramite


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

IRP_MJ_DEVICE_CONTROL

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)

Vedi anche

VOLUME_READ_PLEX_INPUT