Partager via


Fonction BuildIoRingCancelRequest (ioringapi.h)

Tente d’annuler une opération d’anneau d’E/S précédemment soumise.

Syntaxe

HRESULT BuildIoRingCancelRequest(
  HIORING           ioRing,
  IORING_HANDLE_REF file,
  UINT_PTR          opToCancel,
  UINT_PTR          userData
);

Paramètres

ioRing

HIORING représentant un handle de l’anneau d’E/S pour lequel une annulation est demandée.

file

Un IORING_HANDLE_REF représentant le fichier associé à l’opération à annuler.

opToCancel

Une UINT_PTR spécifiant l’opération à annuler. Cette valeur est la même que celle fournie dans le paramètre userData lors de l’inscription de l’opération. Pour prendre en charge l’annulation, la valeur userData doit être unique pour chaque opération.

userData

Valeur UINT_PTR identifiant l’opération d’annulation. Spécifiez cette valeur lors de l’annulation de l’opération avec un appel à BuildIoRingCancelRequest. Si une application implémente le comportement d’annulation pour l’opération, la valeur userData doit être unique. Sinon, la valeur est traitée comme opaque par le système et peut être n’importe quoi, y compris 0.

Valeur retournée

Valeur Description
S_OK Succès
IORING_E_SUBMISSION_QUEUE_FULL La file d’attente de soumission est pleine et aucune entrée supplémentaire n’est disponible pour générer. L’application doit envoyer les entrées existantes et attendre que certaines d’entre elles se terminent avant d’ajouter d’autres opérations à la file d’attente.
IORING_E_UNKNOWN_REQUIRED_FLAG L’application a fourni un indicateur obligatoire qui n’est pas connu de l’implémentation. Le code de bibliothèque doit case activée le champ IoRingVersion du IORING_INFO obtenu à partir d’un appel à GetIoRingInfo pour déterminer la version d’API d’un anneau d’E/S qui détermine les opérations et les indicateurs pris en charge. Les applications doivent connaître la version qu’elles ont utilisée pour créer l’anneau d’E/S et ne doivent donc pas fournir d’indicateurs non pris en charge au moment de l’exécution.

Remarques

Étant donné que les opérations en anneau d’E/S sont effectuées de manière asynchrone, cet appel de fonction n’est qu’une demande d’annulation. L’opération spécifiée peut se terminer avant le traitement de l’annulation. L’opération d’annulation peut se terminer une fois l’opération qu’elle annule terminée. L’achèvement de l’opération d’annulation ne dépend pas de l’achèvement réel des opérations d’E/S qu’elle annule. Les applications doivent rechercher l’achèvement de l’opération d’origine dans la file d’attente d’achèvement en appelant PopIoRingCompletion pour observer la status finale de l’opération. L’opération peut s’être terminée avec succès ou avec une erreur au lieu d’être annulée par l’appel à cette fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Build 22000
Serveur minimal pris en charge Windows Build 22000
En-tête ioringapi.h