Kombinieren von Pipe- und Nichtpipeparametern

Wenn Sie Pipetypen und andere Typen in einem Remoteprozeduraufruf kombinieren, werden die Daten gemäß der Richtung des Parameters übertragen:

  • In der [in] -Richtung werden zuerst die Daten für alle Nichtpipeargumente übertragen, gefolgt von Pipedaten.
  • In der [out] -Richtung sendet der Server zuerst die Pipedaten. Nachdem die Managerroutine zurückgegeben wurde, überträgt der Server die Nichtpipedaten.
  • Wenn es [in,out] -Pipeargumente gibt, die mit [in,out] Non-Pipe-Argumenten kombiniert werden, werden zuerst die Eingabedaten vollständig übertragen, wie zuvor beschrieben. Anschließend werden die Ausgabedaten wie zuvor beschrieben übertragen.

Die folgende Einschränkung gilt für diese Implementierung von Pipes (MIDL 3.0): Wenn Sie Pipetypen und andere Typen in einem einzelnen Remoteprozeduraufruf kombinieren, müssen die Parameter ohne Pipeline eine klar definierte Größe aufweisen, damit der MIDL-Compiler die erforderliche Puffergröße berechnen kann. Beispielsweise können Sie Pipeparameter nicht mit einem [ eindeutigen] Zeiger oder einer konformen Struktur kombinieren, da deren Größen zur Kompilierzeit nicht bestimmt werden können.

Rohr

/Oi