Freigeben über


IOCTL_VOLUME_READ_PLEX IOCTL (ntddvol.h)

Führt ein Lesen eines bestimmten Plex- eines Volumes aus. Da alle Plexes identisch sind, kann der Volume-Manager Während eines normalen Lesevorgangs Daten aus den Plexes eines Volumes abrufen. Der Volume-Manager verbreitet Lesevorgänge unter den Plexes eines Volumes, um die E/A-Auslastung auf den physischen Medien auszugleichen und die Leseleistung zu maximieren.

Wenn jedoch eine Anwendungs- oder Kernelmoduskomponente Daten aus einem bestimmten Plex lesen muss, anstatt dem Volume-Manager die Auswahl zu ermöglichen, kann diese IOCTL dazu verwendet werden.

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

Der Aufrufer fügt die VOLUME_READ_PLEX_INPUT-Struktur ein, die den logischen Offset enthält, am Anfang des Puffers bei Irp->AssociatedIrp.SystemBuffer.

Eingabepufferlänge

Parameters.DeviceIoControl.InputBufferLength in der I/O-Stapelposition des IRP gibt die Größe des Eingabepuffers in Byte an, die größer oder gleich dem Wert Sizeof(VOLUME_READ_PLEX_INPUT) sein muss.

Ausgabepuffer

Wie IRP_MJ_READspeichert diese IOCTL die Lesedaten im Speicherpuffer, die als Speicherdeskriptorliste (MDL) in der Irp->MdlAddress Feld übergeben werden.

Länge des Ausgabepuffers

Die Länge des Puffers.

Statusblock

Wenn der Vorgang erfolgreich ist, legt der Volume-Manager das Feld Status auf STATUS_SUCCESS fest.

Die VOLUME_READ_PLEX_INPUT Struktur bei Irp->AssociatedIrp.SystemBuffer weist ein Length Member auf, das an einer Grenze von 512 Byte ausgerichtet werden muss. Wenn Length nicht über die richtige Ausrichtung verfügt, schlägt der Vorgang fehl, und der Volume-Manager legt das feld Status auf VKE_EINVAL fest.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar ab Windows XP.
Header- ntddvol.h (include Ntddvol.h)

Siehe auch

VOLUME_READ_PLEX_INPUT