CancelIoEx, fonction

Marque toutes les opérations d’E/S en suspens pour le handle de fichier spécifié. La fonction annule uniquement les opérations d’E/S dans le processus actuel, quel que soit le thread qui a créé l’opération d’E/S.

Syntaxe

BOOL WINAPI CancelIoEx(
  _In_     HANDLE       hFile,
  _In_opt_ LPOVERLAPPED lpOverlapped
);

Paramètres

hFile [in]

Handle pour le fichier.

lpOverlapped [in, facultatif]

Pointeur vers une structure de données CHEVAUCHEMENT 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 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 handle 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 handle 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é terminées.

Si la fonction échoue, la valeur de retour est 0 (zéro). Pour obtenir des informations d’erreur étendues, appelez la fonction GetLastError .

Si cette fonction ne trouve pas de demande d’annulation, 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 uniquement les requêtes dans le thread qui a appelé la fonction CancelIo . CancelIoEx annule uniquement les E/S en attente sur le handle, il ne modifie pas l’état du handle ; Cela signifie que vous ne pouvez pas vous appuyer sur l’état du handle, car vous ne pouvez pas savoir si l’opération a été terminée avec succès ou annulée.

Si des opérations d’E/S en attente sont en cours pour le handle de fichier spécifié, la fonction CancelIoEx les marque pour l’annulation. La plupart des types d’opérations peuvent être annulés immédiatement ; d’autres opérations peuvent se poursuivre jusqu’à leur achèvement avant qu’elles ne 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 handle de fichier est associé à un port d’achèvement, un paquet d’achèvement d’E/S n’est pas mis en file d’attente vers 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 met en file d’attente un paquet d’achèvement d’E/S.

L’opération en cours d’annulation est terminée avec l’un des trois états suivants : vous devez case activée l’status d’achèvement pour déterminer l’état d’achèvement. Les trois états sont les suivants :

  • L’opération s’est terminée normalement. Cela peut se produire même si l’opération a été annulée, car la demande d’annulation n’a peut-être pas é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é.

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

Technology Prise en charge
Protocole SMB (Server Message Block) 3.0
Oui
Basculement transparent SMB 3.0 (TFO)
Oui
SMB 3.0 avec partages de fichiers avec montée en puissance sortante (SO)
Oui
Cluster Shared Volume File System (CsvFS)
Oui
Système de fichiers résilient (ReFS)
Oui

Spécifications

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]
En-tête
IoAPI.h (inclure Windows.h) ;
WinBase.h sur Windows Server 2008 R2, Windows 7, Windows Server 2008 et Windows Vista (inclure Windows.h)
Bibliothèque
Kernel32.lib
DLL
Kernel32.dll

Voir aussi

CancelIo

CancelSynchronousIo

Annulation des opérations d’E/S en attente

Fonctions de gestion de fichiers

E/S synchrones et asynchrones