CreatePrivateNamespaceA function (winbase.h)

Creates a private namespace.


HANDLE CreatePrivateNamespaceA(
  [in, optional] LPSECURITY_ATTRIBUTES lpPrivateNamespaceAttributes,
  [in]           LPVOID                lpBoundaryDescriptor,
  [in]           LPCSTR                lpAliasPrefix


[in, optional] lpPrivateNamespaceAttributes

A pointer to a SECURITY_ATTRIBUTES structure that specifies the security attributes of the namespace object.

[in] lpBoundaryDescriptor

A descriptor that defines how the namespace is to be isolated. The caller must be within this boundary. The CreateBoundaryDescriptor function creates a boundary descriptor.

[in] lpAliasPrefix

The prefix for the namespace. To create an object in this namespace, specify the object name as prefix\objectname.

The system supports multiple private namespaces with the same name, as long as they define different boundaries.

Return value

If the function succeeds, it returns a handle to the new namespace.

If the function fails, the return value is NULL. To get extended error information, call GetLastError.


Other applications can access the namespace using the OpenPrivateNamespace function.

The application that created the namespace can use the ClosePrivateNamespace function to close the handle to the namespace. The handle is also closed when the creating process terminates. After the namespace handle is closed, subsequent calls to OpenPrivateNamespace fail, but all operations on objects in the namespace succeed.

To compile an application that uses this function, define _WIN32_WINNT as 0x0600 or later.


Requirement Value
Minimum supported client Windows Vista [desktop apps | UWP apps]
Minimum supported server Windows Server 2008 [desktop apps | UWP apps]
Target Platform Windows
Header winbase.h (include Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

See also


Object Namespaces