Partager via


GetOverlappedResult, fonction (ioapiset.h)

Récupère les résultats d’une opération qui se chevauche sur le fichier, le canal nommé ou l’appareil de communication spécifié. Pour spécifier un intervalle de délai d’attente ou attendre sur un thread pouvant être alerté, utilisez GetOverlappedResultEx.

Syntaxe

BOOL GetOverlappedResult(
  [in]  HANDLE       hFile,
  [in]  LPOVERLAPPED lpOverlapped,
  [out] LPDWORD      lpNumberOfBytesTransferred,
  [in]  BOOL         bWait
);

Paramètres

[in] hFile

Handle du fichier, du canal nommé ou de l’appareil de communication. Il s’agit du même handle que celui qui a été spécifié lorsque l’opération qui se chevauche a été démarrée par un appel à l’une des fonctions suivantes :

[in] lpOverlapped

Pointeur vers une structure CHEVAUCHÉE qui a été spécifiée lors du démarrage de l’opération qui se chevauche.

[out] lpNumberOfBytesTransferred

Pointeur vers une variable qui reçoit le nombre d’octets réellement transférés par une opération de lecture ou d’écriture. Pour une opération TransactNamedPipe , il s’agit du nombre d’octets qui ont été lus à partir du canal. Pour une opération DeviceIoControl , il s’agit du nombre d’octets de données de sortie retournées par le pilote de périphérique. Pour une opération ConnectNamedPipe ou WaitCommEvent , cette valeur n’est pas définie.

[in] bWait

Si ce paramètre a la valeur TRUE et que le membre interne de la structure lpOverlapped est STATUS_PENDING, la fonction ne retourne pas tant que l’opération n’est pas terminée. Si ce paramètre a la valeur FALSE et que l’opération est toujours en attente, la fonction retourne FALSE et la fonction GetLastError retourne ERROR_IO_INCOMPLETE.

Valeur retournée

Si la fonction réussit, la valeur de retour est différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

Les résultats signalés par la fonction GetOverlappedResult sont ceux de la dernière opération de chevauchement du handle spécifié à laquelle la structure CHEVAUCHEMENT SPÉCIFIÉE a été fournie et pour laquelle les résultats de l’opération étaient en attente. Une opération en attente est indiquée lorsque la fonction qui a démarré l’opération retourne FALSE et que la fonction GetLastError retourne ERROR_IO_PENDING. Lorsqu’une opération d’E/S est en attente, la fonction qui a démarré l’opération réinitialise le membre hEvent de la structure OVERLAPPED à l’état non signé. Une fois l’opération en attente terminée, le système définit l’objet événement à l’état signalé.

Si le paramètre bWait a la valeur TRUE, GetOverlappedResult détermine si l’opération en attente est terminée en attendant que l’objet d’événement soit à l’état signalé.

Si le membre hEvent de la structure CHEVAUCHEMENT ESTNULL, le système utilise l’état du handle hFile pour signaler quand l’opération est terminée. L’utilisation de fichiers, de canaux nommés ou de handles d’appareil de communication à cet effet est déconseillée. Il est plus sûr d’utiliser un objet d’événement en raison de la confusion qui peut se produire lorsque plusieurs opérations simultanées se chevauchent sur le même fichier, le même canal nommé ou le même appareil de communication. Dans ce cas, il n’existe aucun moyen de savoir quelle opération a provoqué le signal de l’état de l’objet.

Exemples

Pour obtenir un exemple qui utilise GetOverlappedResult, consultez Test de la fin d’un fichier

Configuration requise

   
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 sur Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

CancelIo, CreateEvent, GetOverlappedResultEx, OVERLAPPED, Chevauchement d’entrée et de sortie, Fonctions de synchronisation