Namespaces de objeto

Um namespace de objeto protege objetos nomeados contra acesso não autorizado. A criação de um namespace privado permite que aplicativos e serviços criem um ambiente mais seguro.

Um processo pode criar um namespace privado usando a função CreatePrivateNamespace . Essa função exige que você especifique um limite que defina como os objetos no namespace devem ser isolados. O chamador deve estar dentro do limite especificado para que a operação de criação seja bem-sucedida. Para especificar um limite, use as funções CreateBoundaryDescriptor e AddSIDToBoundaryDescriptor .

O parâmetro lpAliasPrefix de CreatePrivateNamespace serve como o nome do namespace. Cada namespace é identificado exclusivamente por seu nome e limites. O sistema dá suporte a vários namespaces privados com o mesmo nome, desde que especifiquem limites diferentes.

Suponha que um processo solicite a criação de um namespace, NS1, que define um limite que contém dois elementos: o SID do administrador e o número da sessão atual. O namespace será criado se o processo estiver em execução na conta De administrador na sessão especificada. Outro processo pode acessar esse namespace usando a função OpenPrivateNamespace . O nome e o limite especificados devem corresponder se esse processo for para abrir o namespace criado pelo primeiro processo. Observe que um processo pode abrir um namespace existente mesmo que ele não esteja dentro do limite, a menos que o criador restrinja o acesso ao namespace usando o parâmetro lpPrivateNamespaceAttributes .

Os objetos criados nesse namespace têm nomes que são do nome doobjeto do prefixo\ de formulário. O prefixo é o nome do namespace especificado pelo parâmetro lpAliasPrefix de CreatePrivateNamespace. Por exemplo, para criar um objeto de evento chamado MyEvent no namespace NS1, chame a função CreateEvent com o parâmetro lpName definido como NS1\MyEvent.

O processo que criou o namespace pode usar a função ClosePrivateNamespace para fechar o identificador do namespace. O identificador também é fechado quando o processo que criou o namespace é encerrado. Depois que o identificador de namespace é fechado, as chamadas subsequentes para OpenPrivateNamespace falham, mas todas as operações em objetos no namespace são bem-sucedidas.

Namespaces do objeto Kernel