共用方式為


DrmForwardContentToInterface 函式 (drmk.h)

DrmForwardContentToInterface 函式會接受呼叫端想要轉送受保護內容的物件的 COM 介面指標。 函式會驗證物件,並將系統指派給受保護內容的內容標識碼和DRM許可權傳送物件。

語法

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

參數

[in] ContentId

指定DRM內容識別碼。 此參數會識別受保護的 KS 音訊數據流。

[in] pUnknown

直接接收 KS 音訊篩選之 KS 音訊數據流數據的 COM 介面指標。

[in] NumMethods

指定 COM 介面中 pUnknown 指向的方法總數,包括其基底介面中的所有方法。

傳回值

如果呼叫成功,DrmForwardContentToInterface 會傳回STATUS_SUCCESS。 否則,方法會傳回適當的錯誤碼。 下表顯示一些可能的傳回狀態代碼。

傳回碼 描述
STATUS_NOT_IMPLEMENTED
表示與 pUnknown 相關聯的 KS 音訊數據流不支援指派給 ContentId的 DRM 內容許可權。

言論

允許受保護的內容流經數據路徑之前,系統會確認數據路徑是否安全。 若要這樣做,系統會驗證數據路徑中的每個模組,從數據路徑的上游端開始,並移動下游。 當每個模組都經過驗證時,該模組會提供數據路徑中下一個模組的系統資訊,以便也可以進行驗證。 若要成功驗證,模組的二進位檔必須簽署為DRM相容。

如果數據路徑中的兩個相鄰模組透過下游模組的 COM 介面彼此通訊,上游模組會呼叫 DrmForwardContentToInterface 函式,以提供 COM 介面的指標給系統。 (如果兩個模組會透過 IoCallDriver 函式或下游模組的內容處理程式進行通訊,上游模組會改為呼叫 DrmForwardContentToDeviceObjectDrmAddContentHandlers

DrmForwardContentToInterface 驗證模組,該模組會在 pUnknown所指向的 COM 介面中實作方法。 (如果方法分散在數個模組之間,則函式會驗證所有這些模組。呼叫 介面的模組和實作介面的模組都必須瞭解這個廠商定義的介面。 DrmForwardContentToInterface 不會假設此介面衍生自 IUnknown

如果 DrmForwardContentToInterface 成功驗證驅動程式或連結庫,它會執行下列動作:

  • 查詢 pUnknown 介面是否有其 IDrmAudioStream 介面。 請注意,雖然 DrmForwardContentToInterface 會驗證 pUnknown 介面中的所有方法,但它不會呼叫 pUnknown 介面中除了基底 IUnknown 方法以外的任何方法。
  • 呼叫 IDrmAudioStream::SetContentId,在音訊數據流上設定DRM內容標識碼和DRM內容許可權。 在傳回之前,DrmForwardContentToInterface 釋放 IDrmAudioStream 介面。
pUnknown 參數遵循 COM 物件的 參考計數慣例,

DrmForwardContentToInterface 會執行與 PcForwardContentToInterfaceIDrmPort::ForwardContentToInterface相同的函式。 如需詳細資訊,請參閱 DRM函式和介面

要求

要求 價值
目標平臺 普遍
標頭 drmk.h (包括 Drmk.h)
連結庫 Drmk.lib
IRQL PASSIVE_LEVEL

另請參閱

DrmAddContentHandlers

DrmForwardContentToDeviceObject

IDrmAudioStream

IDrmAudioStream::SetContentId

IDrmPort::ForwardContentToInterface

IoCallDriver

PcForwardContentToInterface