Freigeben über


Anforderungen für Windows Media DRM-Enabled-Anwendungen

Um eine drM-fähige Anwendung (Windows Media Digital Rights Management) zu erstellen, benötigen Sie die Header und Bibliotheken, die im Abschnitt Allgemeinen 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 zum Aktivieren von Windows Media DRM-geschützten Inhaltsübertragungen erforderlich sind, werden in der folgenden Tabelle beschrieben.

Eigentum 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, 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, 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

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 automatisch den geschützten oder klaren Kanal aus, je nachdem, ob der Inhalt geschützt oder gelöscht ist. Es wird mit dem WMDRM Secure Content Provider zum Verarbeiten der WMDRM-Lizenzen verwendet.

Übertragen bekannter klarer Inhalte

Wenn Sie ihre Anwendung zum Behandeln geschützter Inhalte aktiviert haben, aber Sie 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 in der Eingabe IPortableDeviceValues festlegen, wenn Sie IPortableDeviceContent::CreateObjectWithPropertiesAndData- für klare Inhalte aufrufen.

Zugreifen auf Meteringvorgänge mit IWMDRMDeviceApp

WPD bietet einen Mechanismus für den Zugriff auf die IWMDRMDeviceApp-APIs für Lizenzaktualisierungen und das Abrufen von Messdaten. Um über WPD auf diese API zuzugreifen, rufen Sie QueryInterface- für IID_IWMDRMDeviceApp aus dem IStream auf, von IPortableDeviceContent::CreateObjectWithPropertiesAndDatazurückgegeben wird. Diese IWMDRMDeviceApp Instanz, die an die IPortableDevice- Verbindung mit Ihrem WMDRM-kompatiblen Gerät gebunden ist, und nicht den spezifischen Inhalt, an dem die IStream- abgerufen wurde. WPD umschließt die Metering-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.

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 von der IStream- Zeiger ist nur eine Einfache, wenn Ihre Anwendung bereits eine vorherige geschützte Inhaltsübertragung durchführt, bevor Sie mit der Synchronisierung von Getakten und Lizenzsynchronisierung fortfahren.

Unsere Empfehlung für die meisten Anwendungen, die auf IWMDRMDeviceApp- zugreifen müssen, besteht darin, IWMDRMDeviceApp direkt zu initialisieren, da die 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 von WINDOWS Media Device Manager (WMDM)-APIs. Ausführliche Informationen und Beispielcode finden Sie im Zugreifen auf WMDRM-APIs aus einer WPD-Anwendung Whitepaper auf der WHDC-Website.

tragbare Windows-Geräte