Canaux (RPC)

Le constructeur de type de canal est un mécanisme très efficace pour transmettre de grandes quantités de données ou toute quantité de données qui ne sont pas toutes disponibles en mémoire à la fois. En utilisant un canal, le temps d’exécution RPC gère le transfert de données réel, éliminant la surcharge associée aux appels de procédure distante répétés.

Une fois qu’un client appelle une procédure distante qui a un paramètre de canal, le client et le serveur entrent des boucles pour transférer des données. Les données peuvent être produites sur le client ou le serveur. Quoi qu’il en soit, la quantité de données (en octets) n’a pas besoin d’être connue à l’avance. Les données peuvent être produites ou consommées de manière incrémentielle. Dans la boucle de transfert de données, le serveur appelle des routines stub qui chargent ou déchargent une mémoire tampon de données. Le client appelle des procédures définies par le programmeur pour allouer des mémoires tampons, charger des données dans et décharger des données à partir des mémoires tampons.

Cette section fournit une vue d’ensemble de l’utilisation de canaux pour les appels de procédure distante. Il présente la vue d’ensemble dans les rubriques suivantes :

Pour plus d’informations sur la syntaxe et les restrictions de canal, consultez pipe dans la référence du langage MIDL. L’exemple de programme PIPES dans le répertoire samples\rpc du Kit de développement logiciel (SDK) de plateforme montre comment utiliser des canaux [in,out] pour transférer des données entre un client et un serveur.