Durchführen der DRM-Individualisierung
[Das dieser Seite zugeordnete Feature Windows Media Format 11 SDK ist ein Legacyfeature. Es wurde von Source Reader und Sink Writer abgelöst. Source Reader und Sink Writer wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit quellleser und Senkenschreiber anstelle des Windows Media Format 11 SDK verwendet. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]
Bei der Individualisierung wird die DRM-Komponente auf dem Clientcomputer aktualisiert, verschlüsselt und eindeutig. Wenn ein Computer individualisiert wird, ist die DRM-Komponente an den Computer gebunden und kann keine Inhalte auf einem anderen Computer decodieren. Die erweiterten Windows Media DRM-Client-APIs bieten Unterstützung für die Individualisierung der DRM-Komponente auf Clientcomputern.
Die Individualisierung erfolgt durch Aufrufen der IWMDRMSecurity::P erformSecurityUpdate-Methode . Sie können PerformSecurityUpdate aufrufen, sodass es nur dann individualisiert wird, wenn die Version auf dem Server neuer ist als die auf dem Clientcomputer installierte, oder Sie können die Individualisierung ohne Berücksichtigung der relativen Sicherheitsversionen erzwingen. Das Flag für die bedarfsgesteuerte Individualisierung ist WMDRM_SECURITY_PERFORM_INDIV. Das Flag für erzwungene Individualisierung ist WMDRM_SECURITY_PERFORM_FORCE_INDIV.
PerformSecurityUpdate ist ein asynchroner Aufruf. Es wird schnell zurückgegeben und dann Ereignisse generiert, um status Informationen über den Individualisierungsprozess bereitzustellen. Die Meisten der generierten Ereignisse sind MEWMDRMIndividualizationProgress-Ereignisse , und jedes hat eine zugeordnete IWMDRMIndividualizationStatus-Schnittstelle . Um die status-Schnittstelle abzurufen, müssen Sie IMFMediaEvent::GetValue aufrufen, um einen IUnknown-Zeiger abzurufen, der sich auf demselben Objekt befindet, und ihn dann nach IWMDRMIndividualizationStatus abzufragen.
Sie können Daten für eine WM_INDIVIDUALIZE_STATUS-Struktur abrufen, indem Sie IWMDRMIndividualizeStatus::GetStatus aufrufen. Jedes generierte Ereignis verfügt über ein eigenes Objekt mit status. Daher müssen Sie den Vorgang zum Abrufen des Ereigniswerts durchlaufen und die status-Schnittstelle jedes Mal abfragen.
Je nach Größe des Downloads kann es Dutzende oder Hunderte von MEWMDRMIndividualizationProgress-Ereignissen geben. Wenn der Individualisierungsprozess abgeschlossen ist, wird ein MEWMDRMIndividualizationCompleted-Ereignis generiert.
Wenn die Individualisierung abgeschlossen ist, sind die einzigen vorhandenen Objekte, die den neuen individualisierten Zustand widerspiegeln, diejenigen, die von IWMDRMSecurity erben. Alle anderen vorhandenen Objekte werden nicht aktualisiert. Sie müssen alle anderen Objekte freigeben und neu erstellen, damit sie den neuen individualisierten Zustand widerspiegeln.
Zugehörige Themen