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 pour 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 incluant les valeurs suivantes :
Valeur | Description |
---|---|
S_OK | Succès |
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 . |
Notes
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 l’événement à l’état signalé uniquement 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’il n’indique plus d’entrées, puis attendre que les complétions asynchrones supplémentaires se terminent via le HANDLE fourni. Sinon, l’événement n’entrera pas dans l’état signalé et l’attente peut se bloquer jusqu’à ce qu’un délai d’expiration se produise, ou pour toujours si un délai d’expiration infini est utilisé.
Le noyau dupliquera en interne le handle. Il est donc sûr que l’application ferme le handle quand les attentes ne sont plus nécessaires. Fournir une valeur de handle d’événement null efface simplement toute 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 maximum, un handle d’événement associé à un HIORING. La tentative d’en définir un deuxième remplacera tout ce qui existe déjà.
Configuration requise
Client minimal pris en charge | Windows Build 22000 |
Serveur minimal pris en charge | Windows Build 22000 |
En-tête | ioringapi.h |