Partager via


Fonction NtCancelIoFile

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 d’un autre thread, utilisez la fonction NtCancelIoFileEx .

Notes

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

Syntaxe

BOOL WINAPI NtCancelIoFile(
  _In_ HANDLE hFile
);

Paramètres

hFile [in]

Descripteur du fichier.

La fonction annule toutes les opérations d’E/S en attente pour ce descripteur 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 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 handle de fichier spécifié et qu’elles sont émises par le thread appelant, la fonction NtCancelIoFile les annule. NtCancelIoFile 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.

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 pas pour permettre au thread d’appeler la fonction NtCancelIoFile . L’appel de la fonction NtCancelIoFile avec un handle de fichier qui n’est pas ouvert avec FILE_FLAG_OVERLAPPED ne fait rien.

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
En-tête
ntioapi.h
Bibliothèque
ntdll.lib

Voir aussi

CancelIoEx