영어로 읽기

다음을 통해 공유


확인 및 초기화

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

다음 단계를 수행하여 변환이 허용되는지 확인하고 콘텐츠의 암호를 해독할 개체를 초기화해야 합니다.

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

압축 콘텐츠내보내기