CancelIoEx, fonction (ioapiset.h)
Marque toutes les opérations d’E/S en cours pour le gestionnaire de fichiers spécifié. Cette fonction annule seulement les opérations d’E/S dans le processus actif, quel que soit le thread qui a créé l’opération d’E/S.
Syntaxe
BOOL CancelIoEx(
[in] HANDLE hFile,
[in, optional] LPOVERLAPPED lpOverlapped
);
Paramètres
[in] hFile
Descripteur du fichier.
[in, optional] lpOverlapped
Pointeur vers une structure de données OVERLAPPED qui contient les données utilisées pour les E/S asynchrones.
Si ce paramètre a la valeur NULL, toutes les demandes d’E/S pour le paramètre hFile sont annulées.
Si ce paramètre n’est pas NULL, seules les demandes d’E/S spécifiques qui ont été émises pour le fichier avec la structure superposée lpOverlapped spécifiée sont marquées comme annulées, ce qui signifie que vous pouvez annuler une ou plusieurs demandes, tandis que la fonction CancelIo annule toutes les demandes en suspens sur un descripteur de fichier.
Valeur retournée
Si la fonction réussit, la valeur de retour est différente de zéro. L’opération d’annulation de toutes les opérations d’E/S en attente émises par le processus appelant pour le descripteur de fichier spécifié a été demandée avec succès. L’application ne doit pas libérer ou réutiliser la structure OVERLAPPED associée aux opérations d’E/S annulées tant qu’elles ne sont pas terminées. Le thread peut utiliser la fonction GetOverlappedResult pour déterminer quand les opérations d’E/S elles-mêmes ont été effectuées.
Si la fonction échoue, la valeur de retour est zéro (0). Pour obtenir des informations détaillées sur l’erreur, appelez la fonction GetLastError.
Si cette fonction ne trouve pas de demande à annuler, la valeur de retour est 0 (zéro) et GetLastError retourne ERROR_NOT_FOUND.
Notes
La fonction CancelIoEx vous permet d’annuler des demandes dans des threads autres que le thread appelant. La fonction CancelIo annule seulement les demandes dans le thread qui a appelé la fonction CancelIo. CancelIoEx annule seulement les E/S en attente sur le descripteur, et il ne modifie pas l’état du descripteur ; cela signifie que vous ne pouvez pas vous appuyer sur l’état du descripteur, car vous ne pouvez pas savoir si l’opération a été effectuée avec succès ou annulée.
S’il y a des opérations d’E/S en attente en cours pour le descripteur de fichier spécifié, la fonction CancelIoEx les marque pour annulation. La plupart des types d’opérations peuvent être annulées immédiatement ; d’autres opérations peuvent se poursuivre jusqu’à leur achèvement avant qu’elles soient réellement annulées et que l’appelant soit averti. La fonction CancelIoEx n’attend pas que toutes les opérations annulées se terminent.
Si le descripteur de fichier est associé à un port de terminaison, un paquet de terminaison d’E/S n’est pas mis en file d’attente sur le port si une opération synchrone est annulée avec succès. Pour les opérations asynchrones toujours en attente, l’opération d’annulation va mettre en file d’attente un paquet de terminaison d’E/S.
L’opération en cours d’annulation est achevée avec un des trois statuts suivants : vous devez vérifier le statut d’achèvement pour déterminer l’état d’achèvement. Les trois statuts sont :
- L’opération s’est terminée normalement. Ceci peut se produire même si l’opération a été annulée, car la demande d’annulation peut ne pas avoir été envoyée à temps pour annuler l’opération.
- L'opération a été annulée. La fonction GetLastError retourne ERROR_OPERATION_ABORTED.
- L’opération a échoué avec une autre erreur. La fonction GetLastError retourne le code d’erreur approprié.
Technologie | Prise en charge |
---|---|
Protocole Server Message Block (SMB) 3.0 | Oui |
Basculement transparent SMB 3.0 (TFO) | Oui |
SMB 3.0 avec partages de fichiers avec montée en puissance parallèle (SO) | Oui |
Système de fichiers du volume partagé de cluster (CsvFS) | Oui |
Système de fichiers résilient (ReFS) | Oui |
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau | applications UWP] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau | applications UWP] |
Plateforme cible | Windows |
En-tête | ioapiset.h (inclure Windows.h) |
Bibliothèque | Kernel32.lib |
DLL | Kernel32.dll |
Voir aussi
Annulation des opérations d’E/S en attente