개체 네임스페이스

개체 네임스페이스는 명명된 개체를 무단 액세스로부터 보호합니다. 프라이빗 네임스페이스를 만들면 애플리케이션과 서비스가 보다 안전한 환경을 구축할 수 있습니다.

프로세스는 CreatePrivateNamespace 함수를 사용하여 프라이빗 네임스페이스를 만들 수 있습니다. 이 함수를 사용하려면 네임스페이스의 개체를 격리하는 방법을 정의하는 경계 를 지정해야 합니다. 호출자는 만들기 작업이 성공하려면 지정된 경계 내에 있어야 합니다. 경계를 지정하려면 CreateBoundaryDescriptorAddSIDToBoundaryDescriptor 함수를 사용합니다.

CreatePrivateNamespacelpAliasPrefix 매개 변수는 네임스페이스의 이름으로 사용됩니다. 각 네임스페이스는 이름과 경계로 고유하게 식별됩니다. 시스템은 서로 다른 경계를 지정하는 한 동일한 이름의 여러 프라이빗 네임스페이스를 지원합니다.

프로세스에서 관리자 SID와 현재 세션 번호의 두 요소가 포함된 경계를 정의하는 네임스페이스 NS1 만들기를 요청한다고 가정합니다. 프로세스가 지정된 세션의 관리자 계정으로 실행되는 경우 네임스페이스가 만들어집니다. 다른 프로세스는 OpenPrivateNamespace 함수를 사용하여 이 네임스페이스에 액세스할 수 있습니다. 이 프로세스가 첫 번째 프로세스에서 만든 네임스페이스를 여는 경우 지정된 이름과 경계가 모두 일치해야 합니다. 작성자가 lpPrivateNamespaceAttributes 매개 변수를 사용하여 네임스페이스에 대한 액세스를 제한하지 않는 한 프로세스가 경계 내에 있지 않더라도 기존 네임스페이스를 열 수 있습니다.

이 네임스페이스에서 만든 개체에는 폼 접두사\개체 이름의 이름이 있습니다. 접두사는 CreatePrivateNamespacelpAliasPrefix 매개 변수로 지정된 네임스페이스 이름입니다. 예를 들어 NS1 네임스페이스에서 MyEvent라는 이벤트 개체를 만들려면 lpName 매개 변수가 NS1\MyEvent로 설정된 CreateEvent 함수를 호출합니다.

네임스페이스를 만든 프로세스는 ClosePrivateNamespace 함수를 사용하여 네임스페이스에 대한 핸들을 닫을 수 있습니다. 네임스페이스를 만든 프로세스가 종료되면 핸들도 닫힙니다. 네임스페이스 핸들이 닫힌 후 OpenPrivateNamespace 에 대한 후속 호출이 실패하지만 네임스페이스의 개체에 대한 모든 작업이 성공합니다.

커널 개체 네임스페이스