Partager via


BuildIoRingRegisterBuffers, fonction (ioringapi.h)

Inscrit un tableau de mémoires tampons auprès du système pour les futures opérations 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 vers 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 de mémoires tampons .

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 de 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, y compris, mais pas limité aux éléments suivants :

Valeur Descriptif
S_OK Success
IORING_E_SUBMISSION_QUEUE_FULL La file d’attente de soumission est complète et aucune entrée supplémentaire n’est disponible pour la génération. L’application doit soumettre 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 requis qui n’est pas connu de l’implémentation. Le code de la bibliothèque doit vérifier le champ IoRingVersion de l’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 indicateurs pris en charge. Les applications doivent connaître la version utilisée pour créer l’anneau d’E/S et ne doivent donc pas fournir d’indicateurs non pris en charge lors de l’exécution.

Remarques

Cette fonction permet à l’implémentation du noyau d’effectuer la validation et le mappage interne une seule fois, ce qui évite la surcharge sur chaque opération d’E/S. Les entrées suivantes dans 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. Si une inscription précédente existe, 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 éparses et ne sont pas utilisées. Cela vous permet de libérer une ou plusieurs des mémoires tampons précédemment inscrites.

Spécifications

Requirement Valeur
Client minimum requis Windows Build 22000
Serveur minimal pris en charge Windows Build 22000
Header ioringapi.h
Library noyau32. Lib