Partager via


RpcServerInterfaceGroupCreateW, fonction (rpcdce.h)

La fonction RpcServerInterfaceGroupCreate crée un groupe d’interface de serveur RPC pour l’application serveur. Ce groupe d’interfaces spécifie entièrement les interfaces, les points de terminaison et les propriétés inactives d’une application serveur RPC. Une fois créé, un groupe d’interface peut être activé et désactivé en fonction des besoins de l’application.

Syntaxe

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
);

Paramètres

[in] Interfaces

Pointeur vers un tableau de structures RPC_INTERFACE_TEMPLATE qui définissent les interfaces exposées par le groupe d’interfaces.

[in] NumIfs

Nombre d’éléments dans Interfaces.

[in] Endpoints

Pointeur vers un tableau de structures RPC_ENDPOINT_TEMPLATE qui définissent les points de terminaison utilisés par le groupe d’interface.

[in] NumEndpoints

Nombre d’éléments dans les points de terminaison .

[in] IdlePeriod

Durée en secondes après que le groupe d’interface devient inactif que le runtime RPC doit attendre avant d’appeler le rappel inactif. 0 signifie que le rappel est appelé immédiatement. INFINITE signifie que l’application serveur ne se soucie pas de l’état d’inactivité du groupe d’interface.

[in] IdleCallbackFn

Rappel RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN que le runtime RPC appelle une fois que le groupe d’interface est inactif pendant la durée donnée dans IdlePeriod. Peut être NULL uniquement si IdlePeriod est INFINITE.

[in] IdleCallbackContext

Pointeur défini par l’utilisateur à passer au rappel inactif dans IdleCallbackFn.

[out] IfGroup

Si elle réussit, un pointeur vers une mémoire tampon RPC_INTERFACE_GROUP qui reçoit le handle vers le groupe d’interface nouvellement créé. Si cette fonction échoue, IfGroup n’est pas défini.

Valeur de retour

Valeur Signification
RPC_S_OK
L’appel a réussi.
 
Remarque Pour obtenir la liste des codes d’erreur valides, consultez valeurs de retour RPC.
 

Remarques

Une application serveur peut éventuellement être avertie lorsqu’un groupe d’interface devient inactif. Bien que n’importe quelle application puisse tirer parti de cette fonctionnalité, elle est destinée aux développeurs de services qui souhaitent permettre à leur service de s’arrêter.

IdlePeriod empêche le runtime RPC de produire un grand nombre de notifications si l’état d’inactivité change rapidement et, dans le cas des services déclenchés, permet au service d’éviter de démarrer et d’arrêter inutilement. Les développeurs doivent prendre en compte le coût de l’initialisation et de l’arrêt du service, la fréquence attendue avec laquelle de nouvelles activités se produisent et le coût d’inactivité du service lors de la sélection de cette valeur. Une période d’inactivité faible entraîne le démarrage et l’arrêt fréquents du service à mesure que de nouvelles activités clientes ont lieu, tandis qu’une période d’inactivité élevée entraîne l’utilisation des ressources sans effectuer de travail significatif.

Les interfaces d’un groupe d’interfaces ne peuvent être appelées que sur des points de terminaison du même groupe. Les interfaces qui ne font pas partie d’un groupe d’interfaces ne peuvent pas être appelées sur des points de terminaison qui font partie d’un groupe.

L’activité du serveur RPC n’est pas toujours visible par l’application serveur. Dans certains cas, le fait d’avoir un client avec une connexion ouverte au serveur peut le conserver actif même si aucun appel n’a été distribué pendant une longue période. Les applications serveur ne doivent pas s’appuyer sur une corrélation entre le runtime RPC déclarant que le groupe est inactif et le moment où le dernier appel a été distribué.

Note

L’en-tête rpcdce.h définit RpcServerInterfaceGroupCreate en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Exigences

Exigence Valeur
client minimum pris en charge Windows 8 [applications de bureau uniquement]
serveur minimum pris en charge Windows Server 2012 [applications de bureau uniquement]
plateforme cible Windows
d’en-tête rpcdce.h (inclure Rpc.h)
bibliothèque Rpcrt4.lib
DLL Rpcrt4.dll

Voir aussi

RpcServerInterfaceGroupActivate

RpcServerInterfaceGroupClose

RpcServerInterfaceGroupDeactivate

RpcServerInterfaceGroupInqBindings