Partager via


WinAsyncAPPCIOCP

La fonction WinAsyncAPPCIOCP fournit un point d’entrée asynchrone pour tous les verbes APPC. Utilisez cette fonction au lieu des versions bloquantes des verbes pour permettre la gestion de plusieurs sessions sur le même thread à l’aide de ports d’achèvement d’E/S. Ce verbe est pris en charge uniquement sur Microsoft Windows et utilise des ports d’achèvement d’E/S Win32.

Syntaxe

  
    HANDLE WINAPI WinAsyncAPPCIOCP(   
APPC_IOCP_INFO *iocp_handle,  
longlpVcb);  

Paramètres

iocp_handle
Pointeur vers une structure de APPC_IOCP_INFO utilisée pour transmettre les informations de port d’achèvement des E/S.

lpVcb
Pointeur vers le bloc de contrôle verbe

La structure APPC_IOCP_INFO a le prototype suivant :

  
APPC_CompletionPort;APPC_NumberOfBytesTransferred;  
    APPC_CompletionKey;  
    APPC_pOverlapped;  
  

APPC_CompletionPort

Ce paramètre fourni est le HANDLE retourné par l’appel à la fonction CreateIoCompletionPort lors de la création du port d’achèvement des E/S. Le port d’achèvement des E/S doit être créé avant d’appeler la fonction WinAsyncAPPCIOCP . Une fois le verbe terminé, la bibliothèque APPC appelle la fonction PostQueuedCompletionStatus avec les champs restants dans la structure en tant qu’entrées, et ces champs sont simplement transmis à la fonction GetQueuedCompletionStatus émise par l’application.

APPC_NumberOfBytesTransferred

Ce paramètre fourni est ignoré. Une fois le verbe APPC terminé, la bibliothèque APPC appelle la fonction PostQueuedCompletionStatus avec ce champ comme entrée, et la valeur retournée pour le dwNumberOfBytesTransferred est simplement passée à la fonction GetQueuedCompletionStatus émise par l’application.

APPC_CompletionKey

Ce paramètre fourni est ignoré. Une fois le verbe APPC terminé, la bibliothèque APPC appelle la fonction PostQueuedCompletionStatus avec ce champ en tant qu’entrée, et la valeur retournée pour la dwCompletionKey est simplement transmise à la fonction GetQueuedCompletionStatus émise par l’application.

APPC_pOverlapped

Ce paramètre fourni est ignoré. Une fois le verbe APPC terminé, la bibliothèque APPC appelle la fonction PostQueuedCompletionStatus avec ce champ comme entrée, et la valeur retournée pour l’objet lpOverlapped est simplement transmise à la fonction GetQueuedCompletionStatus émise par l’application.

Valeur renvoyée

La valeur de retour spécifie si la demande de résolution asynchrone a réussi. Si la fonction a réussi, la valeur de retour est un handle de tâche asynchrone. Si la fonction n’a pas réussi, un zéro est retourné.

Lorsque cette fonction retourne avec une valeur réussie, cela n’indique pas que l’appel APPC sera finalement retourné avec succès. Cela indique uniquement qu’il était possible pour la bibliothèque APPC de tenter l’appel APPC de manière asynchrone à l’aide d’un port d’achèvement d’E/S pour la notification.

Remarques

Cette fonction est destinée à être utilisée avec CreateIoCompletionPort et GetQueuedCompletionStatus dans l’API Win32. Ces fonctions sont décrites dans la section « Référence » de la documentation du Kit de développement logiciel (SDK) de plateforme Microsoft.

Pour obtenir un exemple d’utilisation de ce verbe dans les TPs multithreads, consultez l’exemple de TP de réception multithread (MRCVIO situé dans le dossier SNA\MSENDRCV) à l’aide des ports d’achèvement d’E/S inclus dans le Kit de développement logiciel (SDK) Host Integration Server.

Les verbes APPC utilisés dans les conversations de base qui peuvent être bloqués sont les suivants :