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 |