Espacios de nombres de objeto
Un espacio de nombres de objeto protege los objetos con nombre frente al acceso no autorizado. La creación de un espacio de nombres privado permite a las aplicaciones y servicios crear un entorno más seguro.
Un proceso puede crear un espacio de nombres privado mediante la función CreatePrivateNamespace . Esta función requiere que especifique un límite que defina cómo se aislarán los objetos del espacio de nombres. El autor de la llamada debe estar dentro del límite especificado para que la operación de creación se realice correctamente. Para especificar un límite, use las funciones CreateBoundaryDescriptor y AddSIDToBoundaryDescriptor .
El parámetro lpAliasPrefix de CreatePrivateNamespace actúa como el nombre del espacio de nombres. Cada espacio de nombres se identifica de forma única por su nombre y límites. El sistema admite varios espacios de nombres privados con el mismo nombre, siempre y cuando especifiquen límites diferentes.
Supongamos que un proceso solicita la creación de un espacio de nombres, NS1, que define un límite que contiene dos elementos: el SID de administrador y el número de sesión actual. El espacio de nombres se crea si el proceso se ejecuta en la cuenta de administrador de la sesión especificada. Otro proceso puede acceder a este espacio de nombres mediante la función OpenPrivateNamespace . Tanto el nombre especificado como el límite deben coincidir si este proceso es abrir el espacio de nombres creado por el primer proceso. Tenga en cuenta que un proceso puede abrir un espacio de nombres existente aunque no esté dentro del límite, a menos que el creador haya restringido el acceso al espacio de nombres mediante el parámetro lpPrivateNamespaceAttributes .
Los objetos creados en este espacio de nombres tienen nombres que son del prefijo\ de formularioobjectname. El prefijo es el nombre del espacio de nombres especificado por el parámetro lpAliasPrefix de CreatePrivateNamespace. Por ejemplo, para crear un objeto de evento denominado MyEvent en el espacio de nombres NS1, llame a la función CreateEvent con el parámetro lpName establecido en NS1\MyEvent.
El proceso que creó el espacio de nombres puede usar la función ClosePrivateNamespace para cerrar el identificador del espacio de nombres. El identificador también se cierra cuando finaliza el proceso que creó el espacio de nombres. Una vez cerrado el identificador del espacio de nombres, las llamadas posteriores a OpenPrivateNamespace producen un error, pero todas las operaciones de los objetos del espacio de nombres se realizan correctamente.