Partager via


Espaces de noms d’objets

Un espace de noms d’objet protège les objets nommés contre tout accès non autorisé. La création d’un espace de noms privé permet aux applications et aux services de créer un environnement plus sécurisé.

Un processus peut créer un espace de noms privé à l’aide de la fonction CreatePrivateNamespace . Cette fonction nécessite que vous spécifiiez une limite qui définit la façon dont les objets de l’espace de noms doivent être isolés. L’appelant doit se trouver dans la limite spécifiée pour que l’opération de création réussisse. Pour spécifier une limite, utilisez les fonctions CreateBoundaryDescriptor et AddSIDToBoundaryDescriptor .

Le paramètre lpAliasPrefix de CreatePrivateNamespace sert de nom de l’espace de noms. Chaque espace de noms est identifié de manière unique par son nom et ses limites. Le système prend en charge plusieurs espaces de noms privés portant le même nom, à condition qu’ils spécifient des limites différentes.

Supposons qu’un processus demande la création d’un espace de noms, NS1, qui définit une limite contenant deux éléments : le SID administrateur et le numéro de session actuel. L’espace de noms est créé si le processus s’exécute sous le compte Administrateur dans la session spécifiée. Un autre processus peut accéder à cet espace de noms à l’aide de la fonction OpenPrivateNamespace . Le nom et la limite spécifiés doivent correspondre si ce processus doit ouvrir l’espace de noms créé par le premier processus. Notez qu’un processus peut ouvrir un espace de noms existant même s’il ne se trouve pas dans la limite, sauf si le créateur a restreint l’accès à l’espace de noms à l’aide du paramètre lpPrivateNamespaceAttributes .

Les objets créés dans cet espace de noms ont des noms au format préfixe\objectname. Le préfixe est le nom d’espace de noms spécifié par le paramètre lpAliasPrefix de CreatePrivateNamespace. Par exemple, pour créer un objet d’événement nommé MyEvent dans l’espace de noms NS1, appelez la fonction CreateEvent avec le paramètre lpName défini sur NS1\MyEvent.

Le processus qui a créé l’espace de noms peut utiliser la fonction ClosePrivateNamespace pour fermer le handle à l’espace de noms. Le handle est également fermé lorsque le processus qui a créé l’espace de noms se termine. Une fois le handle d’espace de noms fermé, les appels suivants à OpenPrivateNamespace échouent, mais toutes les opérations sur les objets de l’espace de noms réussissent.

Espaces de noms d’objets de noyau