Partager via


Fonction CancelIo (ioapiset.h)

Annule toutes les opérations d’entrée et de sortie (E/S) en attente qui sont émises par le thread appelant pour le fichier spécifié. La fonction n’annule pas les opérations d’E/S que d’autres threads émettent pour un descripteur de fichier.

Pour annuler les opérations d’E/S à partir d’un autre thread, utilisez la fonction CancelIoEx.

Syntaxe

BOOL CancelIo(
  [in] HANDLE hFile
);

Paramètres

[in] hFile

Descripteur du fichier.

La fonction annule toutes les opérations d’E/S en attente pour ce 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 thread appelant pour le descripteur de fichier spécifié a bien été demandé. 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 égale à zéro (0). Pour obtenir des informations détaillées sur l’erreur, appelez la fonction GetLastError.

Notes

Si des opérations d’E/S en attente sont en cours pour le descripteur de fichier spécifié et qu’elles sont émises par le thread appelant, la fonction CancelIo les annule. CancelIo annule uniquement les E/S en attente sur le descripteur, il ne modifie pas l’état du descripteur ; cela signifie que vous ne pouvez pas vous reposer sur l’état du descripteur, car vous ne pouvez pas savoir si l’opération a été terminée avec succès ou annulée.

Les opérations d’E/S doivent être émises en tant qu’E/S qui se chevauchent. Si ce n’est pas le cas, les opérations d’E/S ne retournent rien pour permettre au thread d’appeler la fonction CancelIo. Appeler de la fonction CancelIo avec un descripteur de fichier qui n’est pas ouvert avec FILE_FLAG_OVERLAPPED n’est pas utile.

Toutes les opérations d’E/S annulées se terminent avec l’erreur ERROR_OPERATION_ABORTED, et toutes les notifications d’achèvement pour les opérations d’E/S se produisent normalement.

Dans Windows 8 et Windows Server 2012, cette fonction est prise en charge par les technologies suivantes.

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 XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [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

CancelIoEx

CancelSynchronousIo

CreateFile

DeviceIoControl

Fonctions de gestion des fichiers

LockFileEx

ReadDirectoryChangesW

ReadFile

ReadFileEx

E/S synchrones et asynchrones

WriteFile

WriteFileEx