네임드 객체

 - 일부 커널 객체는 시스템 상에서 자신을 고유하게 구별할 수 있는 이름을 가질 수 있음

 - 여러 프로세스가 동일한 이름의 객체를 사용하면 각 프로세스가 사용하는 해당 객체는 동일하다는 것이 보장됨

 - 이미 존재하는 객체에 대해 CreateMutex와 같이 객체를 생성하는 API가 호출되면 커널은 자동으로 해당 객체를 글로벌 테이블에 위치시키고 해당 객체에 대한 핸들을 반환함

 - 네임드 객체는 계층 디렉토리 구조로 배치됨(User ModeWin32 API로 접근 불가능)

 

[주요 객체 디렉토리]

BaseNamedObjects

- 전통적인 Win32네임드 객체 저장

- 모든 네임드 객체 Win32 API는 자동으로 이 디렉토리를 사용(APP는 이를 변경 할 수 없다)

 

Devices

- 현재 활성화된 시스템 디바이스의 디바이스 객체를 저장

 - TCP와 같은 논리적이 디바이스뿐만 아니라 Harddisk0와 같은 물리적인 디바이스인 경우에도 모두 해당됨

 - Win32 API는 직접 접근 불가능 à 심볼릭 링크를 통해 접근 가능

 

GLOBAL

 - 심볼릭 링크 디렉토리

 - 커널객체의 예전 스타일 이름(DOS 네이밍 체계를 따름)

 - Win32 App에서는 디바이스에 접근하려면 반드시 심볼릭 링크 이름을 이용해야 함

 


+ Recent posts