Freigeben über


RpcServerInterfaceGroupCreateA-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 aktiviert und deaktiviert werden, wenn die Anwendung erforderlich ist.

Syntax

RPC_STATUS RpcServerInterfaceGroupCreateA(
  [in]  RPC_INTERFACE_TEMPLATEA              *Interfaces,
  [in]  unsigned long                        NumIfs,
  [in]  RPC_ENDPOINT_TEMPLATEA               *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 Dauer in Sekunden, nachdem die Schnittstellengruppe im Leerlauf ist, sollte die RPC-Laufzeit warten, bevor der Leerlaufrückruf aufgerufen wird. 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-Laufzeit aufruft, sobald die Schnittstellengruppe im Leerlauf ist, die in IdlePeriodangegeben ist. Kann nur NULL- sein, wenn IdlePeriodINFINITEist.

[in] IdleCallbackContext

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

[out] IfGroup

Bei erfolgreicher Ausführung zeigt ein Zeiger auf einen RPC_INTERFACE_GROUP Puffer, der das Handle an 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 gültiger Fehlercodes finden Sie unter RPC-Rückgabewerte.
 

Bemerkungen

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

IdlePeriod- verhindert, dass die RPC-Laufzeit eine große Anzahl von Benachrichtigungen erzeugt, wenn sich der Leerlaufzustand schnell ändert und im Falle ausgelöster Dienste den Dienst nicht unnötig startet und beendet. Entwickler sollten die Kosten für die Dienstinitialisierung und das Herunterfahren, die erwartete Häufigkeit, mit der neue Aktivitäten auftreten, und die Kosten berücksichtigen, die der Dienst beim Auswählen dieses Werts im Leerlauf hält. Ein geringer Leerlaufzeitraum führt dazu, dass der Dienst häufig gestartet und beendet wird, wenn neue Clientaktivitäten ausgeführt werden, während ein hoher Leerlaufzeitraum 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.

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

Anmerkung

Der rpcdce.h-Header definiert RpcServerInterfaceGroupCreate als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 8 [nur Desktop-Apps]
mindestens unterstützte Server- Windows Server 2012 [nur Desktop-Apps]
Zielplattform- Fenster
Header- rpcdce.h (include Rpc.h)
Library Rpcrt4.lib
DLL- Rpcrt4.dll

Siehe auch

RpcServerInterfaceGroupActivate

RpcServerInterfaceGroupClose

RpcServerInterfaceGroupDeactivate

RpcServerInterfaceGroupInqBindings