확인 및 초기화
[Windows Media Format 11 SDK 이 페이지와 연결된 기능은 레거시 기능입니다. 원본 판독기 싱크 작성기 대체되었습니다. 원본 판독기 및 싱크 기록기 Windows 10 및 Windows 11에 최적화되었습니다. 가능한 경우 새 코드에서 Windows Media Format 11 SDK 대신 원본 판독기 및 싱크 기록기 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
다음 단계를 수행하여 변환이 허용되는지 확인하고 콘텐츠의 암호를 해독할 개체를 초기화해야 합니다.
- 콘텐츠의 키 ID가 이미 있는 경우 5단계로 건너뜁니다.
- WMCreateEditor 함수를 호출하여 메타데이터 편집기 개체를 만들고 해당 개체의 IWMMetadataEditor 인터페이스의 인스턴스를 가져옵니다.
- IWMMetadataEditor::QueryInterface 호출하여 IWMDRMEditor 인터페이스의 인스턴스를 가져옵니다.
- IWMDRMEditor::GetDRMProperty 호출하여 DRM_DRMHeader_KeyID 속성을 가져옵니다.
- WMDRMStartup 함수를 호출하여 Windows Media DRM 클라이언트 확장 API를 초기화합니다.
- WMDRMCreateProtectedProvider 함수를 호출하여 보안 공급자 개체를 만들고 해당 개체의 IWMDRMProvider 인터페이스의 인스턴스를 가져옵니다.
- IWMDRMProvider::CreateObject 호출하여 라이선스 관리 개체를 만들고 해당 IWMDRMLicenseManagement 인터페이스의 인스턴스를 가져옵니다.
- IWMDRMLicenseManagement::CreateLicenseEnumeration호출하여 암호화된 후 콘텐츠로 수행할 작업을 제어하는 키 ID 및 권한을 전달합니다. 이 호출은 일치하는 라이선스를 통해 열거하는 데 사용할 수 있는 IWMDRMLicense 인터페이스의 인스턴스를 검색합니다.
- IWMDRMLicense::GetInclusionList 호출하여 라이선스 발급자에서 지정한 대로 CPS(권한 있는 콘텐츠 보호 시스템) 목록을 검색합니다.
- 포함 목록을 구문 분석하여 출력 CPS의 GUID가 라이선스에서 허용되는지 확인합니다.
- 원하는 내보내기 GUID가 포함 목록에 없으면 IWMDRMLicense::GetNext 호출하여 다음 적용 가능한 라이선스(있는 경우)를 가져오고 9단계와 10단계를 반복합니다. 포함 목록에 원하는 GUID가 있는 라이선스가 없으면 내보내기를 수행할 수 없습니다.
- IWMDRMLicense::CreateSecureDecryptor 호출하여 암호 해독기 개체를 만듭니다. 내보내기 애플리케이션 인증서를 전달합니다. 이 호출은 암호 해독기 개체의 IWMDRMDecrypt 인터페이스 인스턴스와 시드를 포함하는 이진 개체에 대한 포인터를 제공합니다. 현재는 windows Media DRM_PROTECTION_TYPE_RC4 상수만 dwFlags 매개 변수에 대한 인수로 지원됩니다.
- RSA OAEP 암호화 체계를 사용하여 초기화 벡터의 암호를 해독합니다.
- Windows Media DRM 내보내기 계약을 체결할 때 Microsoft에서 제공하는 ASF 구문 분석 라이브러리를 사용하여 각 페이로드에 대한 오프셋을 바이트 단위로 찾습니다.
-
압축 콘텐츠내보내기