BuildIoRingCancelRequest-Funktion (ioringapi.h)
Versucht, einen zuvor übermittelten E/A-Ringvorgang abzubrechen.
Syntax
HRESULT BuildIoRingCancelRequest(
HIORING ioRing,
IORING_HANDLE_REF file,
UINT_PTR opToCancel,
UINT_PTR userData
);
Parameter
ioRing
Ein HIORING , der ein Handle für den E/A-Ring darstellt, für den ein Abbruch angefordert wird.
file
Eine IORING_HANDLE_REF , die die Datei darstellt, die dem abzubrechenden Vorgang zugeordnet ist.
opToCancel
Eine UINT_PTR , die den abzubrechenden Vorgang angibt. Dieser Wert ist derselbe Wert, der im parameter userData angegeben wurde, als der Vorgang registriert wurde. Um den Abbruch zu unterstützen, muss der wert userData für jeden Vorgang eindeutig sein.
userData
Ein UINT_PTR Wert, der den Abbruchvorgang 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.
Rückgabewert
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
Da E/A-Ringvorgänge asynchron ausgeführt werden, ist dieser Funktionsaufruf nur eine Anforderung zum Abbruch. Der angegebene Vorgang kann abgeschlossen werden, bevor der Abbruch verarbeitet wird. Der Abbruchvorgang kann abgeschlossen sein, nachdem der Vorgang abgeschlossen ist, der abgebrochen wird. Der Abschluss des Abbruchvorgangs hängt nicht vom tatsächlichen Abschluss der E/A-Vorgänge ab, die abgebrochen werden. Apps sollten nach dem Abschluss des ursprünglichen Vorgangs in der Vervollständigungswarteschlange suchen, indem sie PopIoRingCompletion aufrufen, um die endgültige status des Vorgangs zu beobachten. Der Vorgang wurde möglicherweise erfolgreich oder mit einem Fehler abgeschlossen, anstatt durch den Aufruf dieser Funktion abgebrochen zu werden.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Build 22000 |
Unterstützte Mindestversion (Server) | Windows Build 22000 |
Kopfzeile | ioringapi.h |