內容識別碼和內容許可權

內容識別碼 (識別碼) 是 DRMK 系統驅動程式 在執行時間產生的 ULONG 值,用來識別饋送至特定針腳的音訊資料流程中受 DRM 保護的內容。

內容許可權是內容提供者授與給使用者以播放和複製 DRM 保護內容之許可權的數位標記法。 內容許可權是以 DRMRIGHTS 結構的形式指定,DRMK 會傳遞至音訊驅動程式。

DRMRIGHTS 包含兩個旗標: DigitalOutputDisableCopyProtect。 如果已設定 DigitalOutputDisable 旗標,驅動程式必須停用透過 S/PDIF 連接器連線到外部裝置 (的任何數位輸出,例如) 。 如果已設定 CopyProtect 旗標,驅動程式必須停用可能會允許將安全內容的永續性複本儲存到磁片或任何其他形式的非卷積儲存體的功能。 例如,一般音訊硬體允許透過擷取通道路由播放訊號。 如果這個訊號是數位形式,擷取的訊號可能是輸入訊號的完整數位複本。 如果播放混合包含任何設定 CopyProtect 旗標之資料流程的資料,驅動程式就必須將 playback-capture 路徑設為靜音。

符合 DRM 規範的音訊驅動程式必須在其 WaveCyclic 和 WavePci 迷你埠驅動程式物件上支援 IDrmAudioStream 介面,以公開接收針腳來轉譯音訊資料。 為了從驅動程式取得 IDrmAudioStream 物件的參考,DRMK 會在針腳上呼叫 QueryInterface 方法。 針腳具有 IMiniportWaveCyclicStreamIMiniportWavePciStream類型的介面。 除了) 的三個IUnknown方法之外,IDrmAudioStream介面只支援一個方法IDrmAudioStream::SetContentId (。 當 DRMK 呼叫 SetContentId時,它會傳入內容識別碼和內容許可權,驅動程式會與針腳的資料流程產生關聯。

WaveCyclic 或 WavePci 迷你埠驅動程式可以直接呼叫 Drmk.sys 中的 DRM 函式,而是可以透過 IDrmPort2 介面存取 DRM 函式, (IDrmPort2 衍生自基類 IDrmPort) 。 在 Microsoft Windows XP 和更新版本中,WaveCyclic 和 WavePci 埠驅動程式支援 IDrmPort2。 迷你埠驅動程式會使用 REFIID IID_IDrmPort2呼叫埠物件的QueryInterface方法,以取得埠驅動程式IDrmPort2介面的參考。

某些音訊驅動程式支援硬體混合,而且可以同時處理數個輸入資料流程。 這種類型的驅動程式必須追蹤個別資料流程的內容識別碼,以及所有資料流程的複合內容許可權。 驅動程式會呼叫 IDrmPort::CreateContentMixed 來判斷混合資料流程的複合許可權,並建立內容識別碼來識別該資料流程。 當驅動程式使用內容識別碼完成時,它必須呼叫 IDrmPort::D estroyContent 來刪除內容識別碼。

每次在混合器中新增或移除輸入資料流程時,驅動程式都必須刪除舊混合的內容識別碼,並為新的混合建立新的內容識別碼。 刪除舊的內容識別碼之前,驅動程式必須先成功將新的內容識別碼轉送至先前轉送舊內容識別碼的所有資料流程。 如需詳細資訊,請參閱 轉送 DRM 內容識別碼