Kombinieren von Rohr- und Nichtpipeparametern

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

  • In der [in] Richtung werden die Daten für alle Nichtpipeargumente zuerst übertragen, gefolgt von Rohrdaten.
  • In der [out] -Richtung sendet der Server zuerst die Pipedaten. Nachdem die Managerroutine zurückgegeben wurde, überträgt der Server die Nichtpipedaten.
  • Wenn [in,out] Pipe-Argumente mit [in,out] nicht-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 (MIDL 3.0)-Implementierung von Rohren: Wenn Sie Rohrtypen und andere Typen in einem einzelnen Remoteprozeduraufruf kombinieren, müssen die Nichtpipeparameter eine gut definierte Größe haben, damit der MIDL-Compiler die erforderliche Puffergröße berechnen kann. Sie können z. B. keine Rohrparameter mit einem [ eindeutigen] Zeiger oder einer konformen Struktur kombinieren, da ihre Größen zur Kompilierungszeit nicht bestimmt werden können.

Rohr

/Oi