Partager via


SetIoRingCompletionEvent, fonction (ioringapi.h)

Inscrit un événement de file d’attente d’achèvement avec un anneau d’E/S.

Syntaxe

HRESULT SetIoRingCompletionEvent(
  HIORING ioRing,
  HANDLE  hEvent
);

Paramètres

ioRing

HIORING représentant un handle à l’anneau d’E/S pour lequel l’événement d’achèvement est inscrit.

hEvent

Handle de l’objet d’événement. La fonction CreateEvent ou OpenEvent retourne ce handle.

Valeur retournée

Retourne un HRESULT, y compris les valeurs suivantes :

Valeur Descriptif
S_OK Success
E_INVALID_HANDLE Un handle non valide a été passé dans le paramètre IoRing .
E_INVALIDARG Un handle non valide a été passé dans le paramètre hEvent .

Remarques

Le noyau signale cet événement lorsqu’il place la première entrée dans une file d’attente d’achèvement vide, c’est-à-dire que le noyau définit uniquement l’événement à l’état signalé lorsque la file d’attente d’achèvement passe de l’état vide à l’état non vide. Les applications doivent appeler PopIoRingCompletion jusqu’à ce qu’elle indique plus d’entrées, puis attendent que des achèvements asynchrones supplémentaires soient terminés via le HANDLE fourni. Dans le cas contraire, l’événement n’entre pas dans l’état signalé et l’attente peut bloquer jusqu’à ce qu’un délai d’expiration se produise ou pour toujours si un délai d’attente infini est utilisé.

Le noyau dupliquera en interne le handle. Il est donc sûr que l’application ferme le handle lorsque les attentes ne sont plus nécessaires. La fourniture d’une valeur de handle d’événement null efface simplement n’importe quelle valeur existante. La définition d’une valeur de INVALID_HANDLE_VALUE génère une erreur, comme toute autre valeur de handle non valide, pour faciliter la détection précoce des bogues de code.

Il existe, au plus, un handle d’événement associé à un HIORING, qui tente de définir une seconde remplacera tout élément qui existe déjà.

Spécifications

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

Voir aussi

PopIoRingCompletion