Partager via


Fonction NtCancelIoFileEx

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 en cours, quel que soit le thread qui a créé l’opération d’E/S.

Notes

Cette fonction est l’équivalent en mode utilisateur de la fonction CancelIoEX Win32.

Syntaxe

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

Paramètres

hFile [in]

Handle du 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’a pas la valeur 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 NtCancelIoFile annule toutes les demandes en suspens sur un handle de fichier.

Retours

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 d’appel 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 CHEVAUCHEMENT 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 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 NTCancelIoFileEx vous permet d’annuler des requêtes dans des threads autres que le thread appelant. La fonction NtCancelIoFile annule uniquement les requêtes dans le même thread qui a appelé la fonction NtCancelIoFile . NtCancelIoFileEx 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 compter 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 NtCancelIoFileEx 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 NtCancelIoFileEx n’attend pas la fin de toutes les opérations annulées.

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 ; 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 Pris en charge
Protocole SMB (Server Message Block) 3.0
Oui
Basculement transparent (TFO) SMB 3.0
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
En-tête
ntioapi.h
Bibliothèque
ntdll.lib

Voir aussi

NtCancelIoFile