Condividi tramite


Spazi dei nomi degli oggetti

Uno spazio dei nomi dell'oggetto protegge gli oggetti denominati dall'accesso non autorizzato. La creazione di uno spazio dei nomi privato consente alle applicazioni e ai servizi di creare un ambiente più sicuro.

Un processo può creare uno spazio dei nomi privato usando la funzione CreatePrivateNamespace . Questa funzione richiede di specificare un limite che definisce il modo in cui gli oggetti nello spazio dei nomi devono essere isolati. Il chiamante deve trovarsi all'interno del limite specificato per l'esito positivo dell'operazione di creazione. Per specificare un limite, usare le funzioni CreateBoundaryDescriptor e AddSIDToBoundaryDescriptor .

Il parametro lpAliasPrefix di CreatePrivateNamespace funge da nome dello spazio dei nomi. Ogni spazio dei nomi è identificato in modo univoco dal nome e dai limiti. Il sistema supporta più spazi dei nomi privati con lo stesso nome, purché specifichino limiti diversi.

Si supponga che un processo richieda la creazione di uno spazio dei nomi, NS1, che definisce un limite contenente due elementi: il SID amministratore e il numero di sessione corrente. Lo spazio dei nomi viene creato se il processo è in esecuzione nell'account Amministratore nella sessione specificata. Un altro processo può accedere a questo spazio dei nomi usando la funzione OpenPrivateNamespace . Sia il nome che il limite specificati devono corrispondere se questo processo deve aprire lo spazio dei nomi creato dal primo processo. Si noti che un processo può aprire uno spazio dei nomi esistente anche se non si trova all'interno del limite, a meno che l'autore non possa accedere allo spazio dei nomi con il parametro lpPrivateNamespaceAttributes .

Gli oggetti creati in questo spazio dei nomi hanno nomi di nomedell'oggettoprefisso\ del modulo. Il prefisso è il nome dello spazio dei nomi specificato dal parametro lpAliasPrefix di CreatePrivateNamespace. Ad esempio, per creare un oggetto evento denominato MyEvent nello spazio dei nomi NS1, chiamare la funzione CreateEvent con il parametro lpName impostato su NS1\MyEvent.

Il processo che ha creato lo spazio dei nomi può usare la funzione ClosePrivateNamespace per chiudere l'handle allo spazio dei nomi. L'handle viene chiuso anche quando il processo che ha creato lo spazio dei nomi termina. Dopo la chiusura dell'handle dello spazio dei nomi, le chiamate successive a OpenPrivateNamespace hanno esito negativo, ma tutte le operazioni sugli oggetti nello spazio dei nomi hanno esito positivo.

Spazi dei nomi degli oggetti kernel