Partager via


Implémentation de canal Client-Side

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

  • Procédure d’extraction (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 des 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à sous la forme appropriée (tableau d’éléments de canal, par exemple), vous pouvez coordonner la procédure alloc avec la procédure d’extraction 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. Les procédures push et pull, d’autre part, manipulent des éléments dont la taille en octets dépend de la façon dont elles ont été définies.

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