FSCTL_OFFLOAD_READ Steuerungscode
Der FSCTL_OFFLOAD_READ-Steuerelementcode initiiert einen Auslagerungslesevorgang für einen Datenblock in einem Speichersystem, der Das Ausladen von Lesegrundtypen unterstützt.
Um diesen Vorgang auszuführen, rufen Sie FltFsControlFile oder ZwFsControlFile mit den folgenden Parametern auf.
Parameter
Instanz [in]: Nur FltFsControlFile . Ein undurchsichtiger instance Zeiger für den Aufrufer. Dieser Parameter ist erforderlich und darf nicht NULL sein.
FileObject [in]: Nur FltFsControlFile . Das Dateizeigerobjekt, das die Datei angibt, aus der gelesen werden soll. Dieser Parameter ist erforderlich und darf nicht NULL sein.
FileHandle [in]: nur ZwFsControlFile . Das Dateihandle der Datei, aus der gelesen werden soll. Dieser Parameter ist erforderlich und darf nicht NULL sein.
FsControlCode [in]: Der Steuerelementcode für den Vorgang. Verwenden Sie für diesen Vorgang FSCTL_OFFLOAD_READ .
InputBuffer [in]: Ein Zeiger auf eine FSCTL_OFFLOAD_READ_INPUT-Struktur , die die Größe und den Offset eines zu lesenden Datenblocks enthält.
InputBufferLength [in]: Die Größe des Puffers in Bytes, auf den InputBuffer verweist. Dieser Wert ist sizeof(FSCTL_OFFLOAD_READ_INPUT).
OutputBuffer [out]: Ein Zeiger auf eine FSCTL_OFFLOAD_READ_OUTPUT-Struktur , die die Ergebnisse des Auslagerungslesevorgangs empfängt.
OutputBufferLength [out]: Die Größe des Puffers in Bytes, auf die der OutputBuffer-Parameter verweist. Dieser Wert muss mindestens sizeof(FSCTL_OFFLOAD_READ_OUTPUT) sein.
Statusblock
FltFsControlFile oder ZwFsControlFile gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt die entsprechende Funktion möglicherweise einen der folgenden NTSTATUS-Werte zurück.
Code | Bedeutung |
---|---|
STATUS_INVALID_DEVICE_REQUEST | Das angegebene Handle ist kein gültiges Dateihandle. |
STATUS_INVALID_PARAMETER | Ein Parameter ist ungültig. Siehe Hinweise. |
STATUS_VOLUME_DISMOUNTED | Das Dateisystemvolume wird aufgehoben. |
STATUS_NOT_SUPPORTED | Auslagerungsvorgänge für Lesevorgänge werden auf diesem Volume nicht unterstützt. |
STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED | Der angeforderte Dateityp wird nicht unterstützt. Auslagerungsvorgänge werden für diese Dateitypen nicht unterstützt: Eine transaktionierte Datei (TxF); Nicht-Benutzerdateien; Komprimierte Dateien; Verschlüsselte Dateien; Sparsedateien; NTFS-Metatdata-Dateien. |
STATUS_FILE_DELETED | Der Datenstrom für diese Datei ist ungültig. |
STATUS_FILE_CLOSED | Das Dateihandle ist geschlossen. |
STATUS_INVALID_HANDLE | Das angegebene Dateihandle ist ungültig. |
STATUS_FILE_LOCK_CONFLICT | Unzureichender Lesezugriff aufgrund des aktuellen Dateisperrstatus. |
STATUS_END_OF_FILE | Das FileOffset-Element von FSCTL_OFFLOAD_READ_INPUT beginnt nach dem Ende der Datei (EOF). |
STATUS_DISMOUNTED_VOLUME | Ein Auslagerungslesevorgang kann auf einem nicht eingebundenen Volume nicht auftreten. |
STATUS_INSUFFICIENT_RESOUCES | Für die Anforderung stehen nicht genügend Ressourcen zur Verfügung. |
STATUS_BUFFER_TOO_SMALL | OutputBufferLength ist zu klein für OutputBuffer , um eine FSCTL_OFFLOAD_READ_OUTPUT-Struktur zu erhalten. |
Hinweise
Offload-Lesezugriff ist nur für normale Dateien verfügbar. Eine Liste der nicht unterstützten Dateitypen finden Sie in der Beschreibung für STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED .
Lesevorgänge können über die gültige Datenlänge (Valid Data Length, VDL) hinaus, aber nicht über EOF hinaus gestartet werden.
Wenn STATUS_INVALID_PARAMETER zurückgegeben wird, kann der Fehler einer der folgenden ungültigen Parameter sein:
- Die Dateigröße ist kleiner als PAGE_SIZE.
- InputBufferLength<
sizeof(FSCTL_OFFLOAD_READ_INPUT)
. - Mindestens eines dieser Elemente von FSCTL_OFFLOAD_READ_INPUT ist falsch:
- FileOffset ist kein Vielfaches der logischen Sektorgröße des Volumes.
- CopyLength ist kein Vielfaches der logischen Sektorgröße des Volumes.
- Die Größe ist nicht die Größe der FSCTL_OFFLOAD_READ_INPUT-Struktur .
- FileOffset + CopyLength>MAXULONGLONG.
Anforderungen
Anforderungstyp | Anforderung |
---|---|
Unterstützte Mindestversion (Client) | Windows 8 |
Header | Ntifs.h (einschließlich Ntifs.h oder Fltkernel.h) |