다음을 통해 공유


DRM 개별화 수행

[이 페이지와 연결된 기능인 Windows Media Format 11 SDK는 레거시 기능입니다. 원본 판독기 및 싱크 작성기에 의해 대체되었습니다. 원본 판독기 및 싱크 작성기는 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 Windows Media Format 11 SDK 대신 소스 판독기 및 싱크 기록기를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

개별화는 클라이언트 컴퓨터에서 DRM 구성 요소를 업데이트하고, 암호화하고, 고유하게 만드는 프로세스입니다. 컴퓨터가 개별화되면 DRM 구성 요소가 컴퓨터에 연결되며 다른 컴퓨터의 콘텐츠를 디코딩할 수 없습니다. Windows Media DRM 클라이언트 확장 API는 클라이언트 컴퓨터에서 DRM 구성 요소를 개별화하기 위한 지원을 제공합니다.

개별화는 IWMDRMSecurity::P erformSecurityUpdate 메서드를 호출하여 수행됩니다. 서버의 버전이 클라이언트 컴퓨터에 설치된 버전보다 최신 버전인 경우에만 개별화되도록 PerformSecurityUpdate를 호출하거나 상대 보안 버전과 관계없이 개별화를 강제 적용할 수 있도록 PerformSecurityUpdate 를 호출할 수 있습니다. 필요에 따라 개별화에 대한 플래그는 WMDRM_SECURITY_PERFORM_INDIV. 강제 개별화에 대한 플래그는 WMDRM_SECURITY_PERFORM_FORCE_INDIV.

PerformSecurityUpdate 는 비동기 호출입니다. 신속하게 반환된 다음 이벤트를 생성하여 개별화 프로세스에 대한 상태 정보를 제공합니다. 생성된 이벤트의 대부분은 MEWMDRMIndividualizationProgress 이벤트이며, 각각에는 연결된 IWMDRMIndividualizationStatus 인터페이스가 있습니다. 상태 인터페이스를 얻으려면 IMFMediaEvent::GetValue를 호출하여 동일한 개체에 있는 IUnknown 포인터를 검색한 다음 IWMDRMIndividualizationStatus에 대해 쿼리해야 합니다.

IWMDRMIndividualizeStatus::GetStatus를 호출하여 WM_INDIVIDUALIZE_STATUS 구조에 대한 데이터를 가져올 수 있습니다. 생성된 각 이벤트에는 상태 있는 고유한 개체가 있으므로 매번 이벤트 값을 가져오고 상태 인터페이스를 쿼리하는 프로세스를 거쳐야 합니다.

다운로드 크기에 따라 수십 또는 수백 개의 MEWMDRMIndividualizationProgress 이벤트가 있을 수 있습니다. 개별화 프로세스가 완료되면 MEWMDRMIndividualizationCompleted 이벤트가 생성됩니다.

개별화가 완료되면 새 개별화된 상태를 반영하는 기존 개체는 IWMDRMSecurity에서 상속되는 개체뿐입니다. 다른 모든 기존 개체는 업데이트되지 않습니다. 개체가 개별화된 새 상태를 반영할 수 있도록 다른 개체를 해제하고 다시 만들어야 합니다.

DRM 개별화 예제

프로그래밍 가이드

Media Foundation 이벤트 모델 사용

Windows Media DRM 개별화 모범 사례