Share via


Uso dei livelli di protezione di output

[La funzionalità associata a questa pagina, Windows Media Format 11 SDK, è una funzionalità legacy. È stata sostituita da Lettore di origine e Writer sink. Lettore di origine e Writer sink sono stati ottimizzati per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi Lettore di origine e Writer sink anziché Windows Media Format 11 SDK, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

Le licenze create usando Windows Media Rights Manager 10 SDK possono specificare restrizioni di azione usando i livelli di protezione di output (OPLs). Gli INDIRIZZI OP consentono a un creatore di licenze di consentire alcune azioni solo nei dispositivi con tecnologie specifiche. I vantaggi dell'uso di OPLs sono che si ottiene una maggiore flessibilità nella creazione di restrizioni di licenza rispetto alle versioni precedenti. Inoltre, gli ELENCHI di configurazione sono espandibili per supportare tecnologie future. È possibile supportare tali licenze nelle applicazioni usando i metodi dell'interfaccia IWMDRMReader2 .

Per leggere i file protetti da una licenza che specifica gli INDIRIZZI OP, è necessario controllare l'OPL per l'azione desiderata. La tecnologia di output usata dall'applicazione deve essere consentita dall'OPL nella licenza. Ad esempio, alcune licenze per l'audio protetto possono richiedere l'uso del percorso audio sicuro per riprodurre l'audio.

Configurazione del lettore per valutare i livelli di protezione di output

Prima di poter controllare gli OPLs per i file caricati nel lettore, è necessario chiamare il metodo IWMDRMReader2::SetEvaluateOutputLevelLicenses , passando TRUE per il parametro fEvaluate . Se non si chiama questo metodo, le licenze che richiedono gli OPLs non sono visibili all'applicazione.

Valutazione dei livelli di protezione di output copia

Per ottenere i livelli di protezione di output per l'azione di copia, chiamare il metodo IWMDRMReader2::GetCopyOutputLevels . I dati ricevuti dalla chiamata vengono archiviati in una struttura DRM_COPY_OPL . La struttura contiene un livello di protezione di output di base, che specifica il livello di output minimo per l'azione di copia nella licenza. Tuttavia, la struttura DRM_COPY_OPL contiene anche due elenchi di identificatori tecnologici: uno per le tecnologie consentite valutate in base a un OPL inferiore rispetto alla base e uno per le tecnologie che sono valutate uguali o superiori alla base OPL, ma che sono limitate dalla licenza. È necessario controllare le inclusioni e le esclusioni per assicurarsi che la tecnologia usata dall'applicazione sia consentita dalla licenza.

Valutazione dei livelli di protezione dell'output di riproduzione

Per ottenere i livelli di protezione di output per l'azione di riproduzione, chiamare il metodo IWMDRMReader2::GetPlayOutputLevels . I dati ricevuti dalla chiamata vengono archiviati in una struttura DRM_PLAY_OPL . La struttura contiene diverse altre strutture. I livelli di protezione di output di base per l'azione di riproduzione vengono archiviati in una struttura di DRM_MINIMUM_OUTPUT_PROTECTION_LEVELS (membro minOPLdi DRM_PLAY_OPL), che definisce il minimo OPL necessario per riprodurre il contenuto in diversi formati. È necessario controllare il membro per il tipo di formati di output recapitati dall'applicazione.

La struttura DRM_PLAY_OPL definisce due tipi di restrizioni: il campionamento obbligatorio e gli identificatori di protezione dell'output video consentiti.

Il campionamento obbligatorio viene definito come elenco di identificatori della tecnologia di output (membro oplIdDownsample di DRM_PLAY_OPL) che, se usato, può ricevere il contenuto per la riproduzione solo se il contenuto viene prima campionato a una frequenza di bit inferiore.

Gli identificatori di protezione dell'output video consentiti sono definiti come un elenco di tecnologie di output video con informazioni di configurazione per ognuna.

Gestione di più licenze

Alcuni file possono avere più licenze associate all'archivio licenze locali. Quando si valutano gli OPLs per un file letto, è possibile verificare la presenza di licenze aggiuntive chiamando il metodo IWMDRMReader2::TryNextLicense . È consigliabile continuare a provare le licenze finché non viene trovato uno che consente l'esecuzione dell'azione o fino a quando TryNextLicense restituisce DRM_S_FALSE, che indica che non sono presenti più licenze.

In alcuni casi, un file potrebbe avere una licenza associata che richiede un OPL che l'applicazione non può supportare. In questo caso è importante verificare la presenza di licenze aggiuntive perché una licenza può esistere che non specifica gli INDIRIZZI OPL.

Nota DRM non è supportato dalla versione basata su x64 di questo SDK.

Abilitazione del supporto DRM

Interfaccia IWMDRMReader2