다음을 통해 공유


WIA 드라이버용 Out-of-Process COM 개체

드라이버가 out-of-process 구성 요소에서 CoCreatInstance(Microsoft Windows SDK 설명서에 설명됨)를 호출하는 경우 구성 요소에 드라이버 액세스를 허용하도록 설정된 적절한 권한이 없는 한 해당 호출이 실패합니다.

COM의 보안 모델에 대한 자세한 내용은 COM 프로그래밍 책 또는 온라인 설명서를 참조하세요. 다음은 간단한 설명입니다.

out-of-process COM 구성 요소와 연결된 두 가지 종류의 권한이 있습니다.

  • 시작 권한

    시작 권한은 현재 실행되고 있지 않은 경우 COM 구성 요소를 시작할 수 있는 권한이 있는 사용자를 나타냅니다. 예를 들어 구성 요소가 실행되고 있지 않은 로컬 서버에서 구현된 경우 해당 구성 요소에 대해 CoCreateInstance 를 호출하면 COM이 로컬 서버를 시작하려고 시도합니다(호출자에게 시작 권한이 있다고 가정).

  • 액세스 권한

    액세스 권한은 해당 COM 구성 요소에 대한 COM 인터페이스를 검색하기 위해 해당 프로세스를 호출할 수 있는 사용자를 나타냅니다.

    시작 권한 및 액세스 권한은 일치하지 않아도 됩니다. 예를 들어 시작 권한은 관리자로만 설정할 수 있지만 액세스 권한은 대화형 사용자 및 관리자로 설정할 수 있습니다. 또는 관리자에게 COM 서버를 시작할 수 있는 권한이 부여될 수 있지만 일반 사용자는 COM 서버가 이미 실행 중인 경우에만 구성 요소를 사용할 수 있습니다.

COM 서버에 대한 시작 및 액세스 권한을 구성 요소의 AppId 레지스트리 하위 키 아래에 적절한 위치에 저장하는 것이 좋습니다. 이렇게 하면 관리자는 필요한 경우 구성 요소 서비스 관리 도구를 사용하여 해당 권한을 변경할 수 있습니다. COM 서버가 런타임에 이러한 액세스 권한을 사용하도록 하려면 구성 요소의 AppId를 전달하여 EOAC_APPID 플래그와 함께 CoInitializeSecurity(Windows SDK 설명서에 설명됨)를 호출해야 합니다. 이렇게 하면 COM이 레지스트리에서 구성 요소의 AppId 하위 키로 이동하고 AccessPermissionLaunchPermission 항목에 설정된 사용 권한을 사용합니다.