Freigeben über


RpcServerInterfaceGroupCreate-Funktion (rpcdce.h)

Die RpcServerInterfaceGroupCreate-Funktion erstellt eine RPC-Serverschnittstellengruppe für die Serveranwendung. Diese Schnittstellengruppe gibt die Schnittstellen, Endpunkte und Leerlaufeigenschaften einer RPC-Serveranwendung vollständig an. Nach der Erstellung kann eine Schnittstellengruppe nach Bedarf aktiviert und deaktiviert werden.

Syntax

RPC_STATUS RpcServerInterfaceGroupCreate(
  [in]  RPC_INTERFACE_TEMPLATE               *Interfaces,
  [in]  unsigned long                        NumIfs,
  [in]  RPC_ENDPOINT_TEMPLATE                *Endpoints,
  [in]  unsigned long                        NumEndpoints,
  [in]  unsigned long                        IdlePeriod,
  [in]  RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN IdleCallbackFn,
  [in]  void                                 *IdleCallbackContext,
  [out] PRPC_INTERFACE_GROUP                 IfGroup
);

Parameter

[in] Interfaces

Ein Zeiger auf ein Array von RPC_INTERFACE_TEMPLATE Strukturen, die die Schnittstellen definieren, die von der Schnittstellengruppe verfügbar gemacht werden.

[in] NumIfs

Die Anzahl der Elemente in Schnittstellen.

[in] Endpoints

Ein Zeiger auf ein Array von RPC_ENDPOINT_TEMPLATE Strukturen, die die von der Schnittstellengruppe verwendeten Endpunkte definieren.

[in] NumEndpoints

Die Anzahl der Elemente in Endpunkten.

[in] IdlePeriod

Die Zeitspanne in Sekunden nach dem Leerlauf der Schnittstellengruppe, die die RPC-Runtime warten sollte, bevor sie den Leerlaufrückruf aufruft. 0 bedeutet, dass der Rückruf sofort aufgerufen wird. INFINITE bedeutet, dass sich die Serveranwendung nicht um den Leerlaufzustand der Schnittstellengruppe kümmert.

[in] IdleCallbackFn

Ein RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN Rückruf, den die RPC-Runtime aufruft, sobald sich die Schnittstellengruppe für die in IdlePeriod angegebene Dauer im Leerlauf befindet. Kann nur NULL sein, wenn IdlePeriodUNENDLICH ist.

[in] IdleCallbackContext

Ein benutzerdefinierter Zeiger, der an den Leerlaufrückruf in IdleCallbackFn übergeben werden soll.

[out] IfGroup

Bei erfolgreicher Ausführung wird ein Zeiger auf einen RPC_INTERFACE_GROUP Puffer angezeigt, der das Handle auf die neu erstellte Schnittstellengruppe empfängt. Wenn diese Funktion fehlschlägt, ist IfGroup nicht definiert.

Rückgabewert

Wert Bedeutung
RPC_S_OK
Der Aufruf war erfolgreich.
 
Hinweis Eine Liste der gültigen Fehlercodes finden Sie unter RPC-Rückgabewerte.
 

Hinweise

Eine Serveranwendung kann optional benachrichtigt werden, wenn sich eine Schnittstellengruppe im Leerlauf befindet. Obwohl jede Anwendung diese Funktionalität nutzen kann, richtet sie sich an Dienstentwickler, die ihren Dienst zum Beenden im Leerlauf aktivieren möchten.

IdlePeriod verhindert, dass die RPC-Runtime eine große Anzahl von Benachrichtigungen erzeugt, wenn sich der Leerlaufzustand schnell ändert, und hilft dem Dienst bei ausgelösten Diensten, unnötiges Starten und Beenden zu vermeiden. Entwickler sollten die Kosten für die Initialisierung und das Herunterfahren des Diensts, die erwartete Häufigkeit, mit der neue Aktivität auftritt, und die Kosten für die Beibehaltung des Diensts im Leerlauf berücksichtigen, wenn dieser Wert ausgewählt wird. Ein niedriger Leerlauf führt dazu, dass der Dienst häufig gestartet und beendet wird, wenn eine neue Clientaktivität stattfindet, während ein hoher Leerlauf dazu führt, dass der Dienst Ressourcen verbraucht, ohne sinnvolle Arbeit auszuführen.

Schnittstellen in einer Schnittstellengruppe können nur über Endpunkte derselben Gruppe aufgerufen werden. Schnittstellen, die nicht Teil einer Schnittstellengruppe sind, können nicht über Endpunkte aufgerufen werden, die Teil einer Gruppe sind.

Die RPC-Serveraktivität ist für die Serveranwendung nicht immer sichtbar. In einigen Fällen kann es sein, dass einfach ein Client mit einer offenen Verbindung mit dem Server aktiv bleibt, auch wenn über einen längeren Zeitraum keine Anrufe versendet wurden. Serveranwendungen dürfen sich nicht auf eine Korrelation zwischen der RPC-Laufzeit, die deklariert, dass sich die Gruppe im Leerlauf befindet, und der Zeit seit der Versendung des letzten Aufrufs basieren.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile rpcdce.h (include Rpc.h)
Bibliothek Rpcrt4.lib
DLL Rpcrt4.dll

Weitere Informationen

RpcServerInterfaceGroupActivate

RpcServerInterfaceGroupClose

RpcServerInterfaceGroupAktivieren

RpcServerInterfaceGroupInqBindings