DrmForwardContentToInterface 함수(drmk.h)

함수는 DrmForwardContentToInterface 호출자가 보호된 콘텐츠를 전달하려는 개체의 COM 인터페이스에 대한 포인터를 허용합니다. 함수는 개체를 인증하고 시스템에서 보호된 콘텐츠에 할당한 콘텐츠 ID 및 DRM 권한을 개체에 보냅니다.

구문

NTSTATUS DrmForwardContentToInterface(
  [in] ULONG    ContentId,
  [in] PUNKNOWN pUnknown,
  [in] ULONG    NumMethods
);

매개 변수

[in] ContentId

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

[in] pUnknown

KS 오디오 필터에 대한 KS 오디오 스트림 데이터를 직접 수신하는 COM 인터페이스에 대한 포인터입니다.

[in] NumMethods

기본 인터페이스의 모든 메서드를 포함하여 pUnknown 이 가리키는 COM 인터페이스의 총 메서드 수를 지정합니다.

반환 값

DrmForwardContentToInterface 는 호출에 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 메서드는 적절한 오류 코드를 반환합니다. 다음 표에서는 가능한 반환 상태 코드 중 일부를 보여 줍니다.

반환 코드 설명
STATUS_NOT_IMPLEMENTED
pUnknown과 연결된 KS 오디오 스트림이 ContentId에 할당된 DRM 콘텐츠 권한을 지원하지 않음을 나타냅니다.

설명

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

데이터 경로의 인접한 두 모듈이 다운스트림 모듈의 COM 인터페이스를 통해 서로 통신하는 경우 업스트림 모듈은 함수를 호출 DrmForwardContentToInterface 하여 시스템에 COM 인터페이스에 대한 포인터를 제공합니다. (두 모듈이 IoCallDriver 함수 또는 다운스트림 모듈의 콘텐츠 처리기를 통해 통신하는 경우 업스트림 모듈은 DrmForwardContentToDeviceObject 또는 DrmAddContentHandlers를 대신 호출합니다.)

DrmForwardContentToInterfacepUnknown이 가리키는 COM 인터페이스에서 메서드를 구현하는 모듈을 인증합니다. (메서드가 여러 모듈 간에 배포되는 경우 함수는 이러한 모든 모듈을 인증합니다.) 이 공급업체 정의 인터페이스는 인터페이스를 호출하는 모듈과 인터페이스를 구현하는 모듈 모두에서 이해되어야 합니다. DrmForwardContentToInterface 에서는 IUnknown에서 파생된 인터페이스 외에는 이 인터페이스를 가정하지 않습니다.

드라이버 또는 라이브러리를 인증하는 데 성공하면 DrmForwardContentToInterface 다음을 수행합니다.

  • iDrmAudioStream 인터페이스에 대해 pUnknown 인터페이스를 쿼리합니다. 는 DrmForwardContentToInterfacepUnknown 인터페이스의 모든 메서드를 인증하지만 기본 IUnknown 메서드 이외의 pUnknown 인터페이스에서 메서드를 호출하지는 않습니다.
  • IDrmAudioStream::SetContentId를 호출하여 오디오 스트림에 대한 DRM 콘텐츠 ID 및 DRM 콘텐츠 권한을 설정합니다. 반환하기 DrmForwardContentToInterface 전에 IDrmAudioStream 인터페이스를 해제합니다.
pUnknown 매개 변수는 COM 개체에 대한 참조 계산 규칙을 따릅니다.

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

요구 사항

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

추가 정보

DrmAddContentHandlers

DrmForwardContentToDeviceObject

IDrmAudioStream

IDrmAudioStream::SetContentId

IDrmPort::ForwardContentToInterface

IoCallDriver

PcForwardContentToInterface