Fonction BuildIoRingRegisterBuffers (ioringapi.h)

Inscrit un tableau de mémoires tampons auprès du système pour les futures opérations en anneau d’E/S.

Syntaxe

HRESULT BuildIoRingRegisterBuffers(
  HIORING                     ioRing,
  UINT32                      count,
  IORING_BUFFER_INFO const [] buffers,
  UINT_PTR                    userData
);

Paramètres

ioRing

HIORING représentant un handle de l’anneau d’E/S pour lequel les mémoires tampons sont inscrites.

count

UINT32 spécifiant le nombre de mémoires tampons fournies dans le paramètre buffers .

buffers

Tableau de structures IORING_BUFFER_INFO représentant les mémoires tampons à inscrire.

userData

Valeur UINT_PTR identifiant l’opération d’inscription. 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

Retourne un HRESULT incluant, mais sans s’y limiter, les éléments suivants :

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.

Notes

Cette fonction permet à l’implémentation du noyau d’effectuer la validation et le mappage interne une seule fois, évitant ainsi la surcharge sur chaque opération d’E/S. Les entrées suivantes de la file d’attente de soumission peuvent faire référence aux mémoires tampons inscrites avec cette fonction à l’aide d’un index entier dans le tableau. S’il existe une inscription précédente, cela remplace complètement l’inscription précédente. Toutes les entrées du tableau avec une adresse NULL et une longueur de 0 sont des entrées éparses et non utilisées. Cela vous permet de libérer une ou plusieurs des mémoires tampons précédemment inscrites.

Configuration requise

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