Dela via


implementering av Client-Side pipe

Klientprogrammet måste implementera följande procedurer som klienten anropar under dataöverföringen:

  • En hämtningsprocedur (för ett indatarör)
  • En push-procedur (för ett utdatarör)
  • En allokeringsprocedur för att allokera en buffert för överföringsdata

Alla dessa procedurer måste använda argumenten som anges av den MIDL-genererade huvudfilen. Dessutom måste klientprogrammet ha en tillståndsvariabel för att identifiera var data ska hittas eller placeras.

Alloc-proceduren kan också vara så enkel eller så komplex som behövs. Den kan till exempel returnera en pekare till samma buffert varje gång stub anropar funktionen, eller så kan den allokera en annan mängd minne varje gång. Om dina data redan är i rätt form (till exempel en matris med rörelement) kan du samordna allok-proceduren med pull-proceduren för att allokera en buffert som redan innehåller data. I så fall kan pull-proceduren vara en tom rutin.

Buffertallokeringen måste vara i byte. Push- och pull-procedurerna manipulerar å andra sidan element, vars storlek i byte beror på hur de definierades.

I det här avsnittet beskrivs klientimplementeringen av indata- och utdatarör i följande avsnitt: