string-Attribut (RPC)
Das Attribut [ string] gibt an, dass der Parameter ein Zeiger auf ein Array vom Typ char, byte oder w_char ist. Wie bei einem konformen Array wird die Größe eines [string] -Parameters zur Laufzeit bestimmt. Im Gegensatz zu einem konformen Array muss der Entwickler nicht die dem Array zugeordnete Länge angeben. Das [string] -Attribut teilt dem Stub mit, die Arraygröße durch Aufrufen von strlen zu bestimmen. Ein [string] -Attribut kann nicht gleichzeitig mit den Attributen [ length_is] oder [ last_is] verwendet werden.
Die Attributkombination [in, Zeichenfolge] weist den Stub an, die Zeichenfolge nur vom Client an den Server zu übergeben. Die auf dem Server zugewiesene Arbeitsspeichermenge entspricht der übertragenen Zeichenfolgengröße plus eins.
Die Attribute [ out, string] weisen den Stub an, die Zeichenfolge nur vom Server an den Client zu übergeben. Der Call-by-Value-Entwurf der Sprache C besteht darauf, dass alle [out] -Parameter Zeiger sein müssen.
Der [out] -Parameter muss ein Zeiger sein, und standardmäßig sind alle Zeigerparameter Verweiszeiger. Der Verweiszeiger ändert sich während des Aufrufs nicht – er zeigt auf denselben Arbeitsspeicher wie vor dem Aufruf. Bei Zeichenfolgenzeigern bedeutet die zusätzliche Einschränkung des Verweiszeigers, dass der Client vor dem Aufruf der Remoteprozedur genügend gültigen Arbeitsspeicher zuweisen muss. Die Stubs übertragen die Zeichenfolge, die die Attribute [out, string] angeben, in den bereits auf der Clientseite zugewiesenen Arbeitsspeicher.
In den folgenden Themen werden die Prototypen von Remoteprozedurparametern für Zeichenfolgen beschrieben: