Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Windows Media Digital Rights Management (DRM)-kompatibilis alkalmazás létrehozásához rendelkeznie kell a dokumentum Alkalmazásfejlesztési szakaszában leírt fejlécekkel és kódtárokkal. Emellett az alkalmazásnak további tulajdonságokat kell megadnia az ügyféladatokban az eszköz megnyitásakor.
A Windows Media DRM által védett tartalomátvitel engedélyezéséhez szükséges két további tulajdonságot az alábbi táblázat ismerteti.
Ingatlan | Leírás |
---|---|
WPD_CLIENT_WMDRM_APPLICATION_PRIVATE_KEY | Megadja az alkalmazás titkos kulcsát. |
WPD_CLIENT_WMDRM_APPLICATION_CERTIFICATE | Megadja az alkalmazás tanúsítványát. |
Ezeket a tulajdonságokat meg kell adni az alkalmazás ügyféladataiban, amikor az eszköz meg van nyitva az IPortableDevice::Open metódussal. Ha ezek a tulajdonságok meg vannak adva, a WPD API engedélyezi a védett tartalomátvitelt. Ha az alkalmazás tanúsítványt és titkos kulcsot adott meg, az API létrehoz egy biztonságos csatornát, amellyel védett WMDRM-tartalmat továbbíthat az eszközre.
A Windows Media DRM-et támogató Windows-alapú alkalmazások létrehozásáról és terjesztéséről a "Windows-alapú alkalmazások licencelése" című témakörben olvashat.
Tartalom átvitele
A WMDRM által védett tartalom átviteléhez használja IPortableDeviceContent::CreateObjectWithPropertiesAndData. Ez a módszer a védett és a tiszta tartalomhoz is használható további beállítások nélkül. A WPD API automatikusan kiválasztja a védett vagy a tiszta csatornát attól függően, hogy a tartalom védett vagy tiszta. A WMDRM biztonságos tartalomszolgáltatójával együttműködve dolgozza fel a WMDRM-licenceket.
Ismert tiszta tartalom átvitele
Ha engedélyezte, hogy az alkalmazás kezelje a védett tartalmakat, de tudja, hogy egy adott fájl nincs védve, a WPD-nek megadhatja, hogy hagyja ki a DRM-feldolgozást, ha WPD_API_OPTION_USE_CLEAR_DATA_STREAM beállítást TRUE értékre állítja az IPortableDeviceValues , amikor meghívja IPortableDeviceContent::CreateObjectWithPropertiesAndData a tiszta tartalom érdekében.
Mérési műveletek elérése az IWMDRMDeviceApp használatával
A WPD egy mechanizmust biztosít az IWMDRMDeviceApp API-k eléréséhez a licencfrissítésekhez és a mérési adatok lekéréséhez. Az API WPD-n keresztüli eléréséhez hívja meg QueryInterfaceIID_IWMDRMDeviceApp a IStreamIPortableDeviceContent::CreateObjectWithPropertiesAndData. Ez a IWMDRMDeviceApp példány a IPortableDevice WMDRM-kompatibilis eszközhöz való kapcsolatához kapcsolódik, és nem az adott tartalomhoz, ahol a IStream- beszerezték. A WPD belsőleg burkolja a mérési API-kat, és elérhetővé teszi az alkalmazás számára. Az alkalmazásnak az IWMDMDevice* paraméter WMDRMDEVICEAPP_USE_WPD_DEVICE_PTR állandóját kell használnia.
Ezt az alábbi kódrészlet mutatja be.
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);
}
Ugyanez az előfeltétel az alkalmazás titkos kulcsával és tanúsítványával is. Ha a kulcs/tanúsítvány érvénytelen, vagy ha a WMDRM-rendszer inicializálása sikertelen, a QueryInferface hívás sikertelen lesz.
A fenti módszer, a IWMDRMDeviceApp felületet az IStream mutatóról való beszerzésére csak akkor érdemes használni, ha az alkalmazás már korábban is végez védett tartalomátvitelt, mielőtt megkezdené a mérési és licencszinkronizálási műveleteket.
Az IWMDRMDeviceApp eléréséhez szükséges legtöbb alkalmazás esetében azt javasoljuk, hogy inicializálja IWMDRMDeviceApp közvetlenül, mivel ez nem követeli meg, hogy az alkalmazás védett tartalmakat továbbítson vagy az átviteli felületekre tartson az eszközhasználat-mérés és a licencszinkronizálás elvégzéséhez. Ez a módszer a Windows Media Device Manager (WMDM) API-k használatát igényli. A részletekért és a mintakódért tekintse meg a WMDRM API-k elérése WPD-alkalmazásból tanulmányt a WHDC-webhelyen.
Kapcsolódó témakörök