Freigeben über


Anforderungen für Windows Media DRM-Enabled-Anwendungen

Um eine Windows Media Digital Rights Management (DRM)-fähige Anwendung zu erstellen, 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 angeben.

Die beiden zusätzlichen Eigenschaften, die zum Aktivieren von DRM-geschützten Inhaltsübertragungen durch Windows Media erforderlich sind, werden in der folgenden Tabelle beschrieben.

Eigenschaft Beschreibung
WPD_CLIENT_WMDRM_APPLICATION_PRIVATE_KEY Gibt den privaten Schlüssel der Anwendung an.
WPD_CLIENT_WMDRM_APPLICATION_CERTIFICATE 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, lässt die WPD-API geschützte Inhaltsübertragungen zu. Wenn die Anwendung ein Zertifikat und einen privaten Schlüssel bereitgestellt hat, erstellt die API einen sicheren Kanal, um geschützte WMDRM-Inhalte auf das Gerät zu übertragen.

Informationen zum Erstellen und Verteilen von Windows-basierten Anwendungen, die Windows Media DRM unterstützen, finden Sie unter Lizenzierung von Windows-basierten Anwendungen.

Übertragen von Inhalten

Verwenden Sie zum Übertragen von WMDRM-geschützten Inhalten 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 automatisch den geschützten oder leeren Kanal aus, je nachdem, ob der Inhalt geschützt oder eindeutig ist. Es ist eine Schnittstelle mit dem WMDRM Secure Content Provider, um die WMDRM-Lizenzen zu verarbeiten.

Übertragen bekannter eindeutiger Inhalte

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 WPD_API_OPTION_USE_CLEAR_DATA_STREAM Option in der Eingabe IPortableDeviceValues auf TRUE festlegen, wenn Sie IPortableDeviceContent::CreateObjectWithPropertiesAndData aufrufen, um Inhalte zu löschen.

Zugreifen auf Messvorgänge mithilfe von IWMDRMDeviceApp

WPD bietet einen Mechanismus für den Zugriff auf die IWMDRMDeviceApp-APIs für Lizenzupdates und den Abruf von Messdaten. Um über WPD auf diese API zuzugreifen, rufen Sie QueryInterface auf IID_IWMDRMDeviceApp aus dem IStream auf, der von IPortableDeviceContent::CreateObjectWithPropertiesAndData zurückgegeben wird. Diese IWMDRMDeviceApp instance an die IPortableDevice-Verbindung mit Ihrem WMDRM-kompatiblen Gerät gebunden und nicht an den spezifischen Inhalt, auf dem der IStream abgerufen wurde. WPD umschließt intern die Messungs-APIs und macht sie für Ihre Anwendung zugänglich. Ihre Anwendung sollte die WMDRMDEVICEAPP_USE_WPD_DEVICE_PTR Konstante für den Parameter IWMDMDevice* verwenden.

Der folgende Codeausschnitt veranschaulicht dies.

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);

}

Die gleiche Voraussetzung für den privaten Schlüssel und das Zertifikat der Anwendung gilt auch hier. 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 genannte Methode zum Abrufen der IWMDRMDeviceApp-Schnittstelle aus dem IStream-Zeiger ist nur ein Vorteil, wenn Ihre Anwendung bereits eine vorherige übertragung geschützter Inhalte durchführt, bevor Sie mit mess- und Lizenzsynchronisierungsvorgängen fortfahren.

Unsere Empfehlung für die meisten Anwendungen, die auf IWMDRMDeviceApp zugreifen müssen, besteht darin, IWMDRMDeviceApp direkt zu initialisieren, da dies nicht erfordert, dass Ihre Anwendung geschützte Inhalte übertragen oder an den Übertragungsschnittstellen festhalten muss, um die Gerätemessung und Die Lizenzsynchronisierung durchzuführen. Diese Methode erfordert die Verwendung von WMDM-APIs (Windows 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.

Tragbare Windows-Geräte