Anforderungen für Windows Media DRM-Enabled-Anwendungen
Zum Erstellen einer Windows DRM-fähigen (Media Digital Rights Management)-Anwendung (Media Digital Rights Management) benötigen Sie die Header und Bibliotheken, die im Abschnitt Allgemeine Anforderungen für die Anwendungsentwicklung dieses Dokuments beschrieben sind. Darüber hinaus muss die Anwendung beim Öffnen des Geräts zusätzliche Eigenschaften in den Clientinformationen bereitstellen.
Die beiden zusätzlichen Eigenschaften, die erforderlich sind, um Windows Medien-DRM-geschützte Inhaltsübertragungen zu aktivieren, werden in der folgenden Tabelle beschrieben.
| Eigenschaft | BESCHREIBUNG |
|---|---|
| PRIVATER SCHLÜSSEL DER _ _ WPD-CLIENT-WMDRM-ANWENDUNG _ _ _ | Gibt den privaten Schlüssel der Anwendung an. |
| _ _ WMDRM-ANWENDUNGSZERTIFIKAT _ DES WPD-CLIENTS _ | Gibt das Zertifikat der Anwendung an. |
Diese Eigenschaften müssen in den Clientinformationen der Anwendung angegeben werden, wenn das Gerät mit der IPortableDevice::Open-Methode geöffnet wird. Wenn diese Eigenschaften bereitgestellt werden, ermöglicht die WPD-API geschützte Inhaltsübertragungen. Wenn die Anwendung ein Zertifikat und einen privaten Schlüssel bereitgestellt hat, erstellt die API einen sicheren Kanal zum Übertragen geschützter WMDRM-Inhalte auf das Gerät.
Informationen zum Erstellen und Verteilen von Windows-basierten Anwendungen, die Windows Medien-DRM unterstützen, finden Sie unter "Lizenzierung Windows-basierter Anwendungen".
Übertragen von Inhalten
Um WMDRM-geschützte Inhalte zu übertragen, verwenden Sie IPortableDeviceContent::CreateObjectWithPropertiesAndData. Diese Methode kann sowohl für geschützte als auch für klare Inhalte ohne zusätzliche Optionen verwendet werden. Die WPD-API wählt den geschützten oder eindeutigen Kanal automatisch aus, je nachdem, ob der Inhalt geschützt oder klar ist. Er wird mit dem WMDRM Secure Content Provider verbunden, um die WMDRM-Lizenzen zu verarbeiten.
Übertragen von bekanntem klarem Inhalt
Wenn Sie Ihre Anwendung für die Verarbeitung geschützter Inhalte aktiviert haben, aber wissen, dass eine bestimmte Datei nicht geschützt ist, können Sie WPD anweisen, die DRM-Verarbeitung zu überspringen, indem Sie die Option _ WPD-API _ USE CLEAR _ DATA _ _ _ STREAM in der Eingabe IPortableDeviceValues auf TRUE festlegen, wenn Sie IPortableDeviceContent::CreateObjectWithPropertiesAndData für klare Inhalte aufrufen.
Zugreifen auf Messungsvorgänge mit IWMDRMDeviceApp
WPD bietet einen Mechanismus für den Zugriff auf die IWMDRMDeviceApp-APIs für Lizenzupdates und das Abrufen von Messdaten. Um über WPD auf diese API zuzugreifen, rufen Sie QueryInterface auf IID _ IWMDRMDeviceApp aus dem IStream auf, der von IPortableDeviceContent::CreateObjectWithPropertiesAndDatazurückgegeben wird. Diese IWMDRMDeviceApp-Instanz ist an die IPortableDevice-Verbindung mit Ihrem WMDRM-kompatiblen Gerät gebunden, nicht an den spezifischen Inhalt, in dem der IStream abgerufen wurde. WPD umschließt die Messungs-APIs intern und macht sie für Ihre Anwendung zugänglich. Ihre Anwendung sollte die WMDRMDEVICEAPP _ USE _ WPD _ DEVICE _ PTR-Konstante für den IWMDMDevice-Parameter * verwenden.
Dies wird im folgenden Codeausschnitt veranschaulicht.
IStream* pDataStream = NULL;
IWMDRMDeviceApp* pWMDRMApp = NULL;
// ... Initialization
hr = pPortableDeviceContent->CreateObjectWithPropertiesAndData(pValues,
&pDataStream,
&dwOptimalWriteBufferSize,
NULL);
// ... Transfer the protected WMDRM content
pDataStream->Write(pData, cbData, &cbWritten);
pDataStream->Commit(0);
hr = pDataStream->QueryInterface(IID_IWMDRMDeviceApp,
(void**)&pWMDRMApp);
if (SUCCEEDED(hr))
{
DWORD dwStatus = 0;
// Call metering operations on the current device using the WPD device pointer
hr = pWMDRMApp->QueryDeviceStatus((IWMDMDevice *)WMDRMDEVICEAPP_USE_WPD_DEVICE_PTR,
&dwStatus);
}
Hier gelten auch die gleichen Voraussetzungen für den privaten Schlüssel und das Zertifikat der Anwendung. Wenn der Schlüssel/das Zertifikat ungültig ist oder das WMDRM-System nicht initialisiert werden kann, schlägt der QueryInferface-Aufruf fehl.
Die oben beschriebene Methode zum Abrufen der IWMDRMDeviceApp-Schnittstelle vom IStream-Zeiger ist nur ein Vorteil, wenn Ihre Anwendung bereits eine vorherige Übertragung geschützter Inhalte durchführt, bevor Sie mit messungs- und lizenzsynchronisierungsvorgängen fortfahren.
Für die meisten Anwendungen, die auf IWMDRMDeviceApp zugreifen müssen, wird empfohlen, IWMDRMDeviceApp direkt zu initialisieren, da ihre Anwendung keine geschützten Inhalte übertragen oder an die Übertragungsschnittstellen halten muss, um die Gerätemessung und Lizenzsynchronisierung durchzuführen. Diese Methode erfordert die Verwendung Windows WMDM-APIs (Media Geräte-Manager). Ausführliche Informationen und Beispielcode finden Sie im Whitepaper Zugreifen auf WMDRM-APIs aus einer WPD-Anwendung auf der WHDC-Website.