Freigeben über


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