Opérations avec chevauchement
Les opérations avec chevauchement permettent à un thread d’exécuter une opération d’e/s longue en arrière-plan, ce qui laisse le thread libre d’effectuer d’autres tâches. Pour permettre les opérations d’e/s avec chevauchement sur une ressource de communication, le thread doit spécifier l’indicateur de _ _ chevauchement de l’indicateur de fichier dans la fonction CreateFile lorsque le descripteur est ouvert. Pour exécuter la fonction ReadFile ou WriteFile comme une opération avec chevauchement, le thread appelant doit spécifier un pointeur vers une structure OVERLAPPED . La structure OVERLAPPED doit contenir un handle vers un objet d’événement à réinitialisation manuelle (et non à une réinitialisation automatique). Le système définit l’état de l’objet d’événement sur non signalé lorsqu’un appel à la fonction d’e/s retourne une valeur avant que l’opération ne soit terminée. Le système définit l’état de l’objet d’événement comme étant signalé lorsque l’opération est terminée. Le thread utilise une fonction Wait pour vérifier l’état actuel de l’objet d’événement ou pour attendre que son état soit signalé.
Les fonctions ReadFileEx et WriteFileEx ne peuvent être exécutées qu’en tant qu’opérations avec chevauchement. Le thread appelant spécifie un pointeur vers la fonction FileIOCompletionRoutine , qui est exécutée lorsque l’opération Overlapped est terminée. La routine d’achèvement est exécutée uniquement si le thread appelant effectue une opération d’alerte.
Pour plus d’informations sur les objets d’événement, les fonctions Wait, les attentes alertables et les routines de saisie semi-automatique, consultez à propos de la synchronisation.