Partager via


BuildIoRingReadFile, fonction (ioringapi.h)

Effectue une lecture asynchrone à partir d’un fichier à l’aide d’un anneau d’E/S. Cette opération est similaire à l’appel de ReadFileEx.

Syntaxe

HRESULT BuildIoRingReadFile(
  HIORING           ioRing,
  IORING_HANDLE_REF fileRef,
  IORING_BUFFER_REF dataRef,
  UINT32            numberOfBytesToRead,
  UINT64            fileOffset,
  UINT_PTR          userData,
  IORING_SQE_FLAGS  sqeFlags
);

Paramètres

ioRing

HIORING représentant un handle à l’anneau d’E/S qui effectuera l’opération de lecture.

fileRef

Un IORING_HANDLE_REF spécifiant le fichier à lire.

dataRef

Un IORING_BUFFER_REF spécifiant la mémoire tampon dans laquelle le fichier est lu. La mémoire tampon fournie doit avoir une taille d’au moins numberOfBytesToRead octets.

numberOfBytesToRead

Nombre d'octets à lire.

fileOffset

Décalage dans le fichier pour commencer la lecture.

userData

Valeur UINT_PTR identifiant l’opération de lecture de fichier. 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.

sqeFlags

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 d’envoi est pleine et aucune entrée supplémentaire n’est disponible pour la génération. 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 requis 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, par conséquent, ne doivent pas fournir d’indicateurs non pris en charge au moment de l’exécution.

Remarques

Vérifiez la prise en charge des boucles d’E/S pour les opérations de lecture de fichier en appelant IsIoRingOpSupported et en spécifiant IORING_OP_READ pour le paramètre op .

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