- HOME
- Post in | and so on/윈도우서비스
- Post at | 2013. 3. 27. 09:49 | by 밀크빵.
- View comment
Kernel Object Namespaces
대해서 복합적인 이름을 사용할수 있도록 되어 있다. 전역적인 이름은 클라이언트/서버 형식의 응용프로그램들이
많이 사용한다. 그리고 각 클라이언트 세션(session)은 위에 열거한 객체들을 위해 분리된 독자적인 이름 공간을 가지고 있다.
이것은 모든 프로세스와 서비스가 위에 열거한 객체들을 위해 단일화된 이름공간을 공유한다는 원칙과 차이가 있다는것에
주의해야 한다.
여러번 실행된 각각의 프로그램이 서로에게 영향을 받지 않고 실행되도록 하기 위함이다.
클라이언트 세션에서 실행한 프로세스들은 기본적으로 세션내의 이름공간을 사용한다. 그러나 프로세스가 객체의
이름을 명시할때 "Global\"과 같은 접두어를 사용해서 이름을 명시한다면 전역적인 이름공간을 사용하게 된다.
세션내에 이름공간을 사용할 것이다.
시작 세션(Session Zero, 일반적으로 콘솔 세션 또는 서비스 세션)하에서 실행되는 프로그램도 기본적으로
전역적인 이름공간을 사용한다. 이것은 전역적인 이름공간을 사용해서 여러개의 클라이언트 세션에 실행된 각각의
프로세스가 서로 통신하는것을 가능하게 한다.
서버루틴에서 사용하는 객체들은 전역적인 이름공간을사용하기때문에 클라이언트 세션 또는 일반 사용자 세션에서
서버가 만든 객체를 사용하고자 한다면 객체의 이름을 명시할때, "Global\"이라는 접두어를 이름앞에 붙여서 사용해야 한다.
커널객체를 이용하여 세션내에서 실행되는 프로그램에 대햐여 중복실행 체크가 가능하지만 다른 세션에 같은 프로그램이
실행되는것은 체크할수 없다. 따라서 현재 시스템에서 실행중인 모든세션에서 특정 프로그램이 중복 실행되지 않도록 하려면
전역적인 이름 공간을 사용해서 객체를 생성시키고 체크하면 된다.
싶다면 "Local\"이라는 접두어를 사용하면 된다.
사용하면 안된다. 하지만 이용어들은 대소문자를 구별하기 때문에 LOCAL, loCAL과 같은 형태로 사용하는것은 문제가되지
않는다. 그리고 터미널 서비스를 제공하지 않는 Windows 2000 제품군에서는 위 용어들이 무시될 것이다.
'and so on > 윈도우서비스' 카테고리의 다른 글
서비스 <-> 응용 프로그램 간의 IPC (0) | 2013.03.27 |
---|---|
서비스 - 프로그램 IPC (0) | 2013.03.20 |
7.드라이버에서 라이브러리 사용하기 (0) | 2013.03.11 |
6. 드라이버와 에이전트와의 통신 (0) | 2013.03.11 |
5. 드라이버의 설치 및 확인 방법 (0) | 2013.03.11 |