BuildIoRingReadFile-Funktion (ioringapi.h)

Führt einen asynchronen Lesevorgang aus einer Datei mithilfe eines E/A-Rings aus. Dieser Vorgang ähnelt dem Aufrufen von ReadFileEx.

Syntax

HRESULT BuildIoRingReadFile(
  HIORING           ioRing,
  IORING_HANDLE_REF fileRef,
  IORING_BUFFER_REF dataRef,
  UINT32            numberOfBytesToRead,
  UINT64            fileOffset,
  UINT_PTR          userData,
  IORING_SQE_FLAGS  sqeFlags
);

Parameter

ioRing

Ein HIORING , der ein Handle für den E/A-Ring darstellt, der den Lesevorgang ausführt.

fileRef

Eine IORING_HANDLE_REF , die die zu lesende Datei angibt.

dataRef

Ein IORING_BUFFER_REF den Puffer angibt, in den die Datei gelesen wird. Der bereitgestellte Puffer muss eine Größe von mindestens numberOfBytesToRead-Bytes aufweisen.

numberOfBytesToRead

Die Anzahl der zu lesenden Bytes.

fileOffset

Der Offset in die Datei, um mit dem Lesen zu beginnen.

userData

Ein UINT_PTR Wert, der den Dateilesevorgang identifiziert. Geben Sie diesen Wert an, wenn Sie den Vorgang mit einem Aufruf von BuildIoRingCancelRequest abbrechen. Wenn eine App das Abbruchverhalten für den Vorgang implementiert, muss der userData-Wert eindeutig sein. Andernfalls wird der Wert vom System als undurchsichtig behandelt und kann alles sein, einschließlich 0.

sqeFlags

Rückgabewert

Gibt ein HRESULT zurück, einschließlich, aber nicht beschränkt auf Folgendes:

Wert BESCHREIBUNG
S_OK Erfolg
IORING_E_SUBMISSION_QUEUE_FULL Die Übermittlungswarteschlange ist voll, und es stehen keine zusätzlichen Einträge zum Erstellen zur Verfügung. Die Anwendung muss die vorhandenen Einträge übermitteln und warten, bis einige von ihnen abgeschlossen sind, bevor sie der Warteschlange weitere Vorgänge hinzufügt.
IORING_E_UNKNOWN_REQUIRED_FLAG Die Anwendung hat ein erforderliches Flag bereitgestellt, das der Implementierung nicht bekannt ist. Bibliothekscode sollte das Feld IoRingVersion der IORING_INFO überprüfen, die von einem Aufruf von GetIoRingInfo abgerufen wurden, um die API-Version eines E/A-Rings zu ermitteln, der die unterstützten Vorgänge und Flags bestimmt. Anwendungen sollten die Version kennen, die sie zum Erstellen des E/A-Rings verwendet haben, und sollten daher zur Laufzeit keine nicht unterstützten Flags bereitstellen.

Hinweise

Überprüfen Sie die E/A-Ringunterstützung für Lesedateivorgänge, indem Sie IsIoRingOpSupported aufrufen und IORING_OP_READ für den Op-Parameter angeben.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Build 22000
Unterstützte Mindestversion (Server) Windows Build 22000
Kopfzeile ioringapi.h