RpcServerInterfaceGroupCreateA, 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 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
);
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 |
---|---|
|
L’appel a réussi. |
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