Kombinieren von Pipe- und Nonpipe-Parametern
Wenn Sie Pipetypen und andere Typen in einem Remoteprozeduraufruf kombinieren, werden die Daten entsprechend der Richtung des Parameters übertragen:
- In der [ Richtung ] werden die Daten für alle Nichtpipeargumente zuerst übertragen, gefolgt von Pipedaten.
- In der [ Richtung "Out" ] sendet der Server zuerst die Pipedaten. Nachdem die Managerroutine zurückgegeben wurde, überträgt der Server die Nichtpipedaten.
- Wenn [ ] In-Out-Pipeargumente mit nicht pipebasierten [ ] In-Out-Argumenten kombiniert sind, werden die Eingabedaten zunächst 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 Pipes: Wenn Sie Pipetypen und andere Typen in einem einzelnen Remoteprozeduraufruf kombinieren, müssen die Nichtpipeparameter eine klar definierte Größe haben, damit der MIDL-Compiler die benötigte Puffergröße berechnen kann. Beispielsweise können Sie Pipeparameter nicht mit einem eindeutigen Zeiger oder einer konformen Struktur kombinieren, da ihre Größen zur Kompilierzeit [ ] nicht bestimmt werden können.