RpcServerInterfaceGroupCreateW-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 RpcServerInterfaceGroupCreateW(
[in] RPC_INTERFACE_TEMPLATEW *Interfaces,
[in] unsigned long NumIfs,
[in] RPC_ENDPOINT_TEMPLATEW *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 |
---|---|
|
Der Aufruf war erfolgreich. |
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