Fonction RpcServerRegisterIf3 (rpcdce.h)
La fonction RpcServerRegisterIf3 inscrit une interface avec la bibliothèque d’exécution RPC.
Syntaxe
RPC_STATUS RpcServerRegisterIf3(
[in] RPC_IF_HANDLE IfSpec,
[in, optional] UUID *MgrTypeUuid,
[in, optional] RPC_MGR_EPV *MgrEpv,
[in] unsigned int Flags,
[in] unsigned int MaxCalls,
[in] unsigned int MaxRpcSize,
[in, optional] RPC_IF_CALLBACK_FN *IfCallback,
[in, optional] void *SecurityDescriptor
);
Paramètres
[in] IfSpec
Structure générée par MIDL indiquant l’interface à inscrire.
[in, optional] MgrTypeUuid
Pointeur vers un UUID de type à associer au paramètre MgrEpv . La spécification d’une valeur de paramètre null (ou d’un UUID nil) inscrit IfSpec avec un UUID de type nil.
[in, optional] MgrEpv
Vecteur de point d’entrée (EPV) des routines du gestionnaire. Pour utiliser l’EPV par défaut généré par MIDL, spécifiez une valeur null . Pour plus d’informations, consultez RPC_MGR_EPV.
[in] Flags
Drapeaux. Pour obtenir la liste des valeurs d’indicateur, consultez Indicateurs d’inscription d’interface.
[in] MaxCalls
Nombre maximal de demandes d’appel de procédure distante simultanées que le serveur peut accepter sur une interface d’écoute automatique . Le paramètre MaxCalls s’applique uniquement sur une interface d’écoute automatique et est ignoré sur les interfaces qui ne sont pas en écoute automatique. La bibliothèque d’exécution RPC fait tout son possible pour s’assurer que le serveur n’autorise pas plus de demandes d’appels simultanés que le nombre d’appels spécifié dans MaxCalls. Le nombre réel peut être supérieur et peut varier pour chaque séquence de protocole.
Les appels sur d’autres interfaces sont régis par la valeur du paramètre MaxCalls à l’échelle du processus spécifié dans l’appel de fonction RpcServerListen .
Si le nombre d’appels simultanés n’est pas un problème, vous pouvez obtenir des performances côté serveur légèrement meilleures en spécifiant la valeur par défaut à l’aide de RPC_C_LISTEN_MAX_CALLS_DEFAULT. Cela évite à l’environnement d’exécution RPC d’appliquer une restriction inutile.
[in] MaxRpcSize
Taille maximale des blocs de données entrants, en octets. Ce paramètre peut être utilisé pour empêcher les attaques malveillantes par déni de service. Si le bloc de données d’un appel de procédure distante est supérieur à MaxRpcSize, la bibliothèque d’exécution RPC rejette l’appel et envoie une erreur RPC_S_ACCESS_DENIED au client. La spécification d’une valeur (int non signé) -1 pour ce paramètre supprime la limite de taille des blocs de données entrants. Ce paramètre n’a aucun effet sur les appels effectués sur le protocole ncalrpc .
[in, optional] IfCallback
Fonction de rappel de sécurité ou NULL pour aucun rappel. Chaque interface inscrite peut avoir une fonction de rappel différente. Consultez remarques sur RpcServerRegisterIf2.
[in, optional] SecurityDescriptor
Descripteur de sécurité pour accéder à l’interface RPC. Chaque interface inscrite peut avoir un descripteur de sécurité différent.
Valeur retournée
Retourne RPC_S_OK en cas de réussite.
Remarques
Les paramètres et les effets de la fonction RpcServerRegisterIf3 étendent ceux de la fonction RpcServerRegisterIf2 . La différence est la possibilité de spécifier un descripteur de sécurité pour contrôler l’accès à l’interface RPC inscrite.
Si SecurityDescriptor et IfCallbackFn sont spécifiés, le descripteur de sécurité dans SecurityDescriptor est vérifié en premier et le rappel dans IfCallbackFn est appelé après la case activée d’accès par rapport au descripteur de sécurité.
Lorsque vous appelez RpcServerRegisterIf3 avec SecurityDescriptor défini sur NULL, ou lorsque vous appelez RpcServerRegisterIf, RpcServerRegisterIf2 ou RpcServerRegisterIfEx pour inscrire une interface, un descripteur de sécurité par défaut est utilisé. Le descripteur de sécurité par défaut n’autorise pas l’accès à partir d’un processus AppContainer à l’interface si le serveur RPC n’est pas un processus AppContainer. Le descripteur de sécurité par défaut n’autorise pas l’accès à partir d’un processus dans d’autres processus AppContainer à l’interface si le serveur RPC est un processus AppContainer. Le descripteur de sécurité par défaut autorise l’accès à partir de processus normaux, y compris les processus à faible intégrité.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8 [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2012 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | rpcdce.h (inclure Rpc.h) |
Bibliothèque | Rpcrt4.lib |
DLL | Rpcrt4.dll |