DrmAddContentHandlers 함수(drmk.h)

함수는 DrmAddContentHandlers 보호된 콘텐츠를 처리하는 함수 목록을 시스템에 제공합니다.

구문

NTSTATUS DrmAddContentHandlers(
  [in] ULONG ContentId,
  [in] PVOID *paHandlers,
  [in] ULONG NumHandlers
);

매개 변수

[in] ContentId

DRM 콘텐츠 ID를 지정합니다. 이 매개 변수는 보호된 KS 오디오 스트림을 식별합니다.

[in] paHandlers

함수 포인터 배열에 대한 포인터입니다. 각 배열 요소는 콘텐츠 처리기를 가리킵니다.

[in] NumHandlers

paHandlers 배열의 함수 포인터 수를 지정합니다.

반환 값

DrmAddContentHandlers 는 호출에 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 적절한 오류 코드를 반환합니다.

설명

보호된 콘텐츠가 데이터 경로를 통과하도록 허용하기 전에 시스템은 데이터 경로가 안전한지 확인합니다. 이를 위해 시스템은 데이터 경로의 업스트림 끝에서 시작하여 다운스트림으로 이동하는 데이터 경로의 각 모듈을 인증합니다. 각 모듈이 인증될 때 해당 모듈은 인증할 수 있도록 데이터 경로의 다음 모듈에 대한 시스템 정보를 제공합니다. 성공적으로 인증하려면 모듈의 이진 파일을 DRM 규격으로 서명해야 합니다.

인접한 두 모듈이 IoCallDriver 함수 또는 다운스트림 모듈의 COM 인터페이스를 통해 서로 통신하는 경우 업스트림 모듈은 각각 DrmForwardContentToInterface 또는 DrmForwardContentToDeviceObject 함수를 호출하여 다운스트림 모듈에 대한 정보를 시스템에 제공합니다. 그러나 두 모듈이 다른 유형의 인터페이스를 사용하여 통신하는 경우 업스트림 모듈은 대신 함수를 DrmAddContentHandlers 호출합니다.

paHandlers 배열에는 다운스트림 모듈의 진입점에 대한 함수 포인터가 포함되어 있습니다. DrmAddContentHandlers 는 이러한 함수를 구현하는 모듈을 인증합니다. (진입점이 여러 모듈 간에 분산되는 경우 함수는 이러한 모든 모듈을 인증합니다.) 이 배열의 공급업체 정의 함수는 함수를 호출하는 모듈과 함수를 구현하는 모듈 모두에서 이해하는 인터페이스를 구성합니다. DrmAddContentHandlers 는 이러한 함수를 직접 호출하지 않습니다.

업스트림 모듈은 이를 위해 paHandlers 배열의 함수 중 하나를 사용하여 콘텐츠 ID와 콘텐츠 권한을 다운스트림 모듈에 전달할 수 있습니다. 다운스트림 모듈은 보호된 콘텐츠를 보내는 모듈의 시스템에 알려줄 콘텐츠 ID가 필요합니다.

DrmAddContentHandlers는PcAddContentHandlersIDrmPort2::AddContentHandlers와 동일한 함수를 수행합니다. 자세한 내용은 DRM 함수 및 인터페이스를 참조하세요.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 drmk.h(Drmk.h 포함)
라이브러리 Drmk.lib
IRQL PASSIVE_LEVEL

추가 정보

DrmForwardContentToDeviceObject

DrmForwardContentToInterface

IDrmPort2::AddContentHandlers

IoCallDriver

PcAddContentHandlers