Partager via


Implémentation du canal Client-Side

L’application cliente doit implémenter les procédures suivantes, que le stub client appellera pendant le transfert de données :

  • Procédure de tirage (pour un canal d’entrée)
  • Procédure push (pour un canal de sortie)
  • Procédure alloc pour allouer une mémoire tampon pour les données de transfert

Toutes ces procédures doivent utiliser les arguments spécifiés par le fichier d’en-tête généré par MIDL. En outre, l’application cliente doit avoir une variable d’état pour identifier où localiser ou placer les données.

La procédure alloc peut également être aussi simple ou aussi complexe que nécessaire. Par exemple, il peut retourner un pointeur vers la même mémoire tampon chaque fois que le stub appelle la fonction, ou il peut allouer une quantité de mémoire différente à chaque fois. Si vos données sont déjà dans la forme appropriée (un tableau d’éléments de canal, par exemple), vous pouvez coordonner la procédure alloc avec la procédure de tirage pour allouer une mémoire tampon qui contient déjà les données. Dans ce cas, votre procédure de tirage peut être une routine vide.

L’allocation de mémoire tampon doit être en octets. En revanche, les procédures push et pull manipulent des éléments dont la taille en octets dépend de la façon dont ils ont été définis.

Cette section décrit l’implémentation cliente des canaux d’entrée et de sortie dans les sections suivantes :