emb311 enabling media playback on windows ce aaron cheng program manager windows ce microsoft...

46
EMB311 EMB311 Enabling Media Enabling Media Playback On Windows Playback On Windows CE CE Aaron Cheng Aaron Cheng Program Manager Program Manager Windows CE Windows CE Microsoft Corporation Microsoft Corporation

Upload: marina-fella

Post on 16-Dec-2015

223 views

Category:

Documents


0 download

TRANSCRIPT

EMB311EMB311

Enabling Media Playback Enabling Media Playback On Windows CEOn Windows CE

Aaron ChengAaron ChengProgram ManagerProgram ManagerWindows CEWindows CEMicrosoft CorporationMicrosoft Corporation

MManagementanagementTToolsools

CCommunicationsommunications& & MMessagingessaging

Device Update Agent

Software Update Services

Live Communications Server

Exchange Server

Internet Security and Acceleration Server

Speech Server

Image Update

LLocation ocation SServiceservices

MMultimediaultimedia

MapPoint

DirectX

Windows Media

Visual Studio 2005DDevelopment evelopment TToolsools

MFC 8.0, ATL 8.0

Win32NNativeative

MManagedanaged

SServer erver SSideide

LLightweightightweight

RRelationalelationalSQL Server 2005 Express EditionEDB

DDa

taata

PPro

gra

mm

ing

ro

gra

mm

ing

MM

od

el

od

el

DDevice evice BBuilding uilding TToolsools

HHardware/ardware/DDriversrivers

Windows XP DDK

Windows Embedded Studio

Platform Builder

OEM/IHV SuppliedBSP

(ARM, SH4, MIPS)OEM Hardware and Standard Drivers

Standard PC Hardware and Drivers

SQL Server 2005SQL Server 2005 Mobile Edition

ASP.NET Mobile Controls ASP.NET

.NET Compact Framework .NET Framework

Microsoft Operations Manager

Systems Management Server

AgendaAgenda

Multimedia Overview and ArchitectureMultimedia Overview and ArchitectureWindows Media Playback PipelineWindows Media Playback Pipeline

Streaming features on CE 5.0Streaming features on CE 5.0

Dealing with Window Media Digital Rights Dealing with Window Media Digital Rights Management Protected ContentManagement Protected Content

Window Media Digital Rights Management 10 for Window Media Digital Rights Management 10 for Portable Devices OverviewPortable Devices OverviewFeatures and limitations of Digital Rights Features and limitations of Digital Rights Management 10 PD on CEManagement 10 PD on CESetup and configuration Digital Rights Setup and configuration Digital Rights Management 10 PD on CEManagement 10 PD on CEDeveloping custom DRM-enabled applicationsDeveloping custom DRM-enabled applications

CE Multimedia GoalsCE Multimedia Goals

Provide a rich set of multimedia Provide a rich set of multimedia technologies that enable customers to technologies that enable customers to rapidly build a variety of consumer rapidly build a variety of consumer devicesdevices

Small, Fast, Hardware AssistedSmall, Fast, Hardware Assisted

Compatibility with desktop WindowsCompatibility with desktop Windowswhen possiblewhen possible

Optimized support for multiple CPUs and Optimized support for multiple CPUs and Systems on Chip Systems on Chip

Current MM TechnologiesCurrent MM Technologies

CE v5.0 CE v5.0 Windows Media v9 improvements/new codecsWindows Media v9 improvements/new codecsDirect3D MobileDirect3D Mobile

CE v4.2CE v4.2Windows Media v9Windows Media v9

CE v 4.0 CE v 4.0 Windows Media Player ApplicationWindows Media Player ApplicationWindows Media v8Windows Media v8DVDDVD

CE v 3.0CE v 3.0DirectShow, DirectDrawDirectShow, DirectDrawWindows Media Player OCX v6.4Windows Media Player OCX v6.4 In

cre

as

ing

Sta

bili

ty a

nd

Per

form

an

ceIn

cre

as

ing

Sta

bili

ty a

nd

Per

form

an

ce

Windows CE MultimediaWindows CE Multimedia

TechnologiesTechnologiesAudioAudio

VideoVideo

2D and 3D Graphics2D and 3D Graphics

Codecs Codecs

StreamingStreaming

DVD-VideoDVD-Video

Digital Rights Digital Rights ManagementManagement

ProductsProductsMSTVMSTVMSNTVMSNTVWindows for Windows for AutomotiveAutomotivePortable Media Portable Media CenterCenterSmartPhoneSmartPhonePocketPCPocketPCVOIP PhoneVOIP PhoneIP Set-Top-BoxIP Set-Top-BoxPVRPVRDMRDMR

Technology BreakdownTechnology Breakdown

DirectDrawDirectDrawDrawing surfaces, blting, Drawing surfaces, blting, flipping, overlays, alpha flipping, overlays, alpha blend, video portsblend, video ports

Direct3D MobileDirect3D Mobile3D polygon rendering3D polygon renderingDirect3D Mobile usesDirect3D Mobile usesthe same API signaturesthe same API signaturesas Direct3Das Direct3DLightweight, integer Lightweight, integer basedbased

Waveform AudioWaveform AudioPlayback, capture, Playback, capture, mixing, sample rate mixing, sample rate conversion, gain classesconversion, gain classes

DirectShowDirectShowMedia playbackMedia playback

DVD-VideoDVD-VideoDVD navigationDVD navigationand playbackand playback

DVD Player appDVD Player app

Windows Media Windows Media Audio/video codecsAudio/video codecs

Streaming/Local FileStreaming/Local File

WM Player OCXWM Player OCX

WM Player appWM Player app

Windows Media Windows Media ComponentsComponents

StreamingStreamingHTTP, MMS, local fileHTTP, MMS, local file

ASX play list parser ASX play list parser and handlerand handlerASF parser and ASF parser and splittersplitterDRM/decryptionDRM/decryption

Software CodecsSoftware CodecsWMV 9 Advanced WMV 9 Advanced Profile (new in 5.0)Profile (new in 5.0)WMV WMV WMAWMAWMA losslessWMA lossless(new in 5.0)(new in 5.0)WMA ProWMA Pro(new in 5.0)(new in 5.0)

DirectShow DirectShow standard renderer standard renderer filtersfilters

CE Multimedia ArchitectureCE Multimedia Architecture

Network, File system, Graphics, Audio, DVD DriversNetwork, File system, Graphics, Audio, DVD Drivers

Filter GraphFilter Graph

WM Player ActiveX WM Player ActiveX ControlControl

WMP Sample App,WMP Sample App,IE 6IE 6

DirectDraw/GDIDirectDraw/GDI WaveDevWaveDev

Hardware

Network/Network/File SystemFile System

SourceSource CodecsCodecs

DirectShow Filter Graph ManagerDirectShow Filter Graph Manager

DVD-DVD-VideoVideo

D3DMD3DM

RenderersRenderers

DirectShow DirectShow AppApp

D3D Mobile, DVD,D3D Mobile, DVD, DDraw AppsDDraw Apps

WMVWMV

WMAWMA

MPEMPEGG

Encoding For Local Encoding For Local PlaybackPlayback

Variable bit rate is good for conserving Variable bit rate is good for conserving disk spacedisk space

CE 5.0 supports high content bit ratesCE 5.0 supports high content bit rates

Make sure indexing is turned onMake sure indexing is turned onThe playback pipeline uses the index to The playback pipeline uses the index to rapidly seek for trick modesrapidly seek for trick modes

Trick mode performance is degraded Trick mode performance is degraded without an indexwithout an index

New Streaming FeaturesNew Streaming Features

FastStartFastStartEnables stream to buffer at speeds higher than the Enables stream to buffer at speeds higher than the bit rate of the requested contentbit rate of the requested content

Buffer fill rate governed by bandwidth of the pipe Buffer fill rate governed by bandwidth of the pipe and limits set on the Windows Media serverand limits set on the Windows Media server

Supported for live broadcast and on demandSupported for live broadcast and on demand

Only supported on unicast streamsOnly supported on unicast streams

Startup profileStartup profileImproves stream start time over FastStartImproves stream start time over FastStart

Important for IPTV channel change latencyImportant for IPTV channel change latency

Only for the HTTP unicast protocolOnly for the HTTP unicast protocol

How Startup Profile WorksHow Startup Profile Works

Windows CE will look at the content and Windows CE will look at the content and calculates an acceleration duration based on calculates an acceleration duration based on the content preroll, bit rate, and the the content preroll, bit rate, and the FSAccBandwitdthFSAccBandwitdth

The Windows Media Server (WMS) uses this The Windows Media Server (WMS) uses this acceleration duration value as the length of acceleration duration value as the length of time to scan the content for the startup time to scan the content for the startup buffering requirementsbuffering requirements

WMS then determines a minimal buffer WMS then determines a minimal buffer (essentially a preroll) that the client decoder (essentially a preroll) that the client decoder requires to play the acceleration duration requires to play the acceleration duration without starving the decoderwithout starving the decoder

Streaming ProtocolsStreaming Protocols

MulticastMulticastEach packet is broadcast to multiple clientsEach packet is broadcast to multiple clients

Microsoft Media Stream (MMS)Microsoft Media Stream (MMS)TCP connection for commands between client and serverTCP connection for commands between client and server

UDP connection for commands between client and serverUDP connection for commands between client and server

Automatic protocol roll-over (UDP, TCP)Automatic protocol roll-over (UDP, TCP)

HTTPHTTPWill automatically come through corporate firewallsWill automatically come through corporate firewalls

Will use Internet Explorer’s proxy-settings, or configure its Will use Internet Explorer’s proxy-settings, or configure its own settingsown settings

RTSPRTSPNot supported on Windows CENot supported on Windows CE

File-based (local or network redirector)File-based (local or network redirector)

Protocol Comparison On CEProtocol Comparison On CE

MMS is good for up to 2Mb/sMMS is good for up to 2Mb/sNo fast start and startup profileNo fast start and startup profileLighter network load (no ack’s)Lighter network load (no ack’s)Requires more reliable hardware and well Requires more reliable hardware and well dimensioned networksdimensioned networksMMS is getting deprecated in servers in MMS is getting deprecated in servers in favor of RTSP and HTTPfavor of RTSP and HTTP

HTTP is better at high bit rates – HTTP is better at high bit rates – internally tested up to 10Mb/s on internally tested up to 10Mb/s on CE 5.0CE 5.0

Fast start and startup profileFast start and startup profile

Encoding For StreamingEncoding For Streaming

Preroll Preroll We use 5 seconds for HTTP unicastWe use 5 seconds for HTTP unicast

MMS as low as 1 second for a quiet networkMMS as low as 1 second for a quiet networkNo startup profileNo startup profile

Multicast as low as 1 second for a quiet networkMulticast as low as 1 second for a quiet networkNo fast start and startup profileNo fast start and startup profile

Bit rate Bit rate Highest for your pipeHighest for your pipe

Key frame distanceKey frame distance5 seconds for HTTP/MMS unicast5 seconds for HTTP/MMS unicast

1 second for Multicast (faster startup)1 second for Multicast (faster startup)

Current DRM Status On CECurrent DRM Status On CE

Windows Media DRM v10 for Portable Windows Media DRM v10 for Portable Devices ‘Janus’ available on 5.0 for x86 Devices ‘Janus’ available on 5.0 for x86 and ARM platformsand ARM platforms

Support for all other platforms Support for all other platforms available by summeravailable by summer

Backward compatible with all previous Backward compatible with all previous versions of Windows Media DRMversions of Windows Media DRM

PD DRM and DRM v7.1 only available PD DRM and DRM v7.1 only available on CE 4.2 on CE 4.2

Digital Rights Management Digital Rights Management EcosystemEcosystem

Distribution

Distribution

Authorization

Authorization

Pro

tect

ed C

on

ten

t

Window Media Rights ManagerWindow Media Rights Manager

Content ServerContent Server

Windows Media Digital Rights Windows Media Digital Rights Management 10 PD Overview Management 10 PD Overview

A flexible platform to protect audio/video A flexible platform to protect audio/video content for playback on devices connected to content for playback on devices connected to IP networks or portable devices connect to IP networks or portable devices connect to another deviceanother device

Store and playback audio/video contentStore and playback audio/video content

Support playback of VOD contentSupport playback of VOD content

Separate license for each piece of contentSeparate license for each piece of content

Each license specify rights for content usageEach license specify rights for content usage

Windows Media Digital Rights Windows Media Digital Rights Management 10 PD Overview Management 10 PD Overview

Acquire and store licenses/contentAcquire and store licenses/contentAllow offline accessAllow offline access

No ‘server’ type capabilitiesNo ‘server’ type capabilities

Enable devices and PC to play back the Enable devices and PC to play back the same contentsame content

No change to content encryption formatNo change to content encryption format

SecureSecureUnique keys for every OEM/deviceUnique keys for every OEM/device

Compromised devices can be revokedCompromised devices can be revoked

How Are Digital Rights How Are Digital Rights Management Files DifferentManagement Files DifferentHH

PacketPacket

HeaderHeader

ASF / WMA / WMVASF / WMA / WMV

PacketPacket

PacketPacket

PacketPacket

PacketPacket

PacketPacket

PacketPacket

PacketPacket

PacketPacket

PacketPacket

PayloadPayloadHeaderHeaderDRMDRMdatadata

DRM Header Obj.DRM Header Obj.

Header not encryptedHeader not encrypted

Packet-basedPacket-based

Fault-tolerantFault-tolerant

Efficient encryptionEfficient encryption

Digital Rights Management Digital Rights Management 10 License Rights10 License Rights

Playback on devicePlayback on devicePlay countPlay countOutput restrictionsOutput restrictionsTime-based rightsTime-based rightsDevice/application security levelDevice/application security level

Copy to deviceCopy to deviceCopy countCopy countDevice capability restrictions Device capability restrictions

CD burningCD burning

How To Acquire Digital Rights How To Acquire Digital Rights Management LicenseManagement License

Direct License Acquisition (DLA)Direct License Acquisition (DLA)Device directly talks to license serverDevice directly talks to license server

Licenses are tied to the deviceLicenses are tied to the device

Three different forms: silent, non-silent Three different forms: silent, non-silent and Pre-deliveryand Pre-delivery

Indirect License Acquisition (ILA)Indirect License Acquisition (ILA)Require PC to acquire license firstRequire PC to acquire license first

PC generates new license to transfer to a PC generates new license to transfer to a connected deviceconnected device

Windows Media Digital Rights Windows Media Digital Rights Management 10 PD AdvantagesManagement 10 PD Advantages

Enable new business model for Enable new business model for content owners and resellerscontent owners and resellers

Provides interoperable platform for Provides interoperable platform for protected content to flow to devicesprotected content to flow to devices

Enhanced security capabilities for Enhanced security capabilities for protecting content protecting content

Provides greater flexibility for ISV Provides greater flexibility for ISV interaction with DRM contentinteraction with DRM content

Improvement in overall performanceImprovement in overall performance

Digital Rights Management Digital Rights Management 10-Content Decrypt Perf10-Content Decrypt Perf

Data from internal Microsoft testingData from internal Microsoft testing

CPU Utilization during audio play back on x86 Platform

0

5

10

15

20

25

30

35

40

Clear Content

DRM Content

Windows Media Digital Rights Windows Media Digital Rights Management 10 PD On WinCEManagement 10 PD On WinCE

Provides E2E solution for play back of DRM Provides E2E solution for play back of DRM protected contentprotected content

Underlying DRM system exposed to other Underlying DRM system exposed to other apps through the CE DRM v10 APIapps through the CE DRM v10 API

Built-in DLA support for devices directly Built-in DLA support for devices directly connected to IP networksconnected to IP networks

Non-silent DLA and Pre-delivery supported Non-silent DLA and Pre-delivery supported through DRM OCXthrough DRM OCX

Need MTP and DRM extension Need MTP and DRM extension implementation for ILA supportimplementation for ILA support

Generic Playback ProcessGeneric Playback Process

All starts with selecting the content that you All starts with selecting the content that you want to playwant to play

Unencrypted ASF header contains the ID of Unencrypted ASF header contains the ID of the selected contentthe selected content

DRM system searches the local license store DRM system searches the local license store for a valid licensefor a valid license

Playback begins if a valid license is foundPlayback begins if a valid license is found

Otherwise, DRM system obtains a license Otherwise, DRM system obtains a license through the license server URL indicated in through the license server URL indicated in the ASF headerthe ASF header

Digital Rights Management Digital Rights Management System Interactions In CESystem Interactions In CE

WinCE Digital Rights WinCE Digital Rights Management 10 PD FeaturesManagement 10 PD Features

License ChainingLicense ChainingRequire root and leaf license to access contentRequire root and leaf license to access content

MeteringMeteringTrack usage for subscription servicesTrack usage for subscription services

Output Protection Levels (OPL)Output Protection Levels (OPL)Control content flow to unprotected outputsControl content flow to unprotected outputs

Device IndividualizationDevice IndividualizationAllow each device to be uniquely identifiedAllow each device to be uniquely identified

Data Store Garbage CollectionData Store Garbage CollectionPeriodically delete invalid licensesPeriodically delete invalid licenses

WinCE Digital Rights WinCE Digital Rights Management 10 PD LimitationsManagement 10 PD Limitations

What are not supported?What are not supported?CD burning rightsCD burning rights

Application exclusionApplication exclusion

Additional work required to support the Additional work required to support the following featuresfollowing features

ILAILA

MeteringMetering

Communication with audio/video drivers to Communication with audio/video drivers to enforce OPLenforce OPL

Secure ClockSecure Clock

How To Get The Digital Rights How To Get The Digital Rights Management 10 Bits?Management 10 Bits?

Out-of-Band process, must request Out-of-Band process, must request through CE distributor or Direct through CE distributor or Direct Account ManagerAccount Manager

Separate license agreement from WMLASeparate license agreement from WMLA

Receive two separate packagesReceive two separate packagesMSI installer – documentation, header MSI installer – documentation, header files, Lib file and samplesfiles, Lib file and samples

Zip file – actual DRM 10 DLL, two .dat filesZip file – actual DRM 10 DLL, two .dat files

Zip file unique for each OEM/device, Zip file unique for each OEM/device, individually tested before releaseindividually tested before release

How To Enable Digital Rights How To Enable Digital Rights Management 10 In BuildManagement 10 In Build

Catalog entriesCatalog entriesAdd ‘Windows Media DRM 10’ and ‘DRM License Add ‘Windows Media DRM 10’ and ‘DRM License Acquisition OCX’Acquisition OCX’

Remove ‘Digital Rights Management’ and ‘DRM for Remove ‘Digital Rights Management’ and ‘DRM for Portable Devices’Portable Devices’

Move Janus DLL and the two .dat files to the Move Janus DLL and the two .dat files to the release directoryrelease directory

Add entries to the project.bib fileAdd entries to the project.bib file

Add entries to the registry (optional)Add entries to the registry (optional)

Do a clean buildDo a clean build

Sample Project.bib FileSample Project.bib File

MODULESMODULES; Name Path Memory Type; Name Path Memory Type

; ----------------- ---------------------------------- -----------; ----------------- ---------------------------------- -----------Janus_WINCE.dll $(_FLATRELEASEDIR)\Janus_WINCE.dll NK SHDJanus_WINCE.dll $(_FLATRELEASEDIR)\Janus_WINCE.dll NK SHD

FILESFILES; Name Path Memory Type; Name Path Memory Type

; ----------------- ---------------------------------- -----------; ----------------- ---------------------------------- -----------devcerttemplate.dat $(_FLATRELEASEDIR)\devcerttemplate.dat NK SHdevcerttemplate.dat $(_FLATRELEASEDIR)\devcerttemplate.dat NK SH

wmdrmpd.dat $(_FLATRELEASEDIR)\wmdrmpd.dat NK SHwmdrmpd.dat $(_FLATRELEASEDIR)\wmdrmpd.dat NK SH

Digital Rights Management Digital Rights Management 10 DAT Files10 DAT Files

Included in DRM 10 packageIncluded in DRM 10 packageDevcerttemplate.dat – base template for a device Devcerttemplate.dat – base template for a device certificate, contain info such as device certificate, contain info such as device make/model & device security levelmake/model & device security level

Wmdrmpd.dat – Obfuscated DRM fileWmdrmpd.dat – Obfuscated DRM file

Generated on device after 1st attempt to play Generated on device after 1st attempt to play back DRM-protected content:back DRM-protected content:

Drmstore.dat – license store file to store the Drmstore.dat – license store file to store the acquired DRM licensesacquired DRM licenses

Devcert.dat – actual device certificate generated Devcert.dat – actual device certificate generated from the template, an unique instance is from the template, an unique instance is generated every timegenerated every time

Digital Rights Management Digital Rights Management 10 Registry Settings10 Registry Settings

HKLM\Software\Microsoft\WMDRMPD HKLM\Software\Microsoft\WMDRMPD CertTemplatePath – location of wmdrmpd.dat & CertTemplatePath – location of wmdrmpd.dat & devcerttemplate.dat, defaults to \Windowsdevcerttemplate.dat, defaults to \Windows

CertPath – location of devcert.dat, defaults to the CertPath – location of devcert.dat, defaults to the root of the file systemroot of the file system

PreAllocateDataStore – pre-allocate the DRM PreAllocateDataStore – pre-allocate the DRM license store to a specific size, potential to license store to a specific size, potential to improve perf on hard drive-based devicesimprove perf on hard drive-based devices

HKLM\Software\Microsoft\DRMHKLM\Software\Microsoft\DRMDataPath – path & filename of the DRM license DataPath – path & filename of the DRM license store file, defaults to rootstore file, defaults to root

What Else Must Be Done to What Else Must Be Done to Ship A DRM-Enabled Device?Ship A DRM-Enabled Device?

OAL support IOCTL_HAL_GET_DEVICEID OAL support IOCTL_HAL_GET_DEVICEID and return at least 128 bits of unique dataand return at least 128 bits of unique data

Media playback app must be able to either Media playback app must be able to either enforce the OPL rights specified in a license enforce the OPL rights specified in a license or stop playback of the contentor stop playback of the content

Media playback app must call the Media playback app must call the IMediaControl::Stop method after receiving a IMediaControl::Stop method after receiving a EC_COMPLETE event EC_COMPLETE event

PB install must include Windows CE 5.0 QFE PB install must include Windows CE 5.0 QFE 041117_KB885285041117_KB885285

Working With The DRM OCXWorking With The DRM OCX

Hosted by the browser to perform non-silent Hosted by the browser to perform non-silent DLA & pre-delivery DLA & pre-delivery

Interaction from the user to confirm acquisition of Interaction from the user to confirm acquisition of the contentthe content

Other application may also host the OCXOther application may also host the OCXOCX exposes the same methods as the OCX exposes the same methods as the RMGetLicense object from the Windows Media RMGetLicense object from the Windows Media Rights Manager SDKRights Manager SDK

OCX methods abstract the CE DRM v10 API OCX methods abstract the CE DRM v10 API

Use the NetObj.GetLicenseFromURL() method to Use the NetObj.GetLicenseFromURL() method to perform pre-deliveryperform pre-delivery

Diagnosing Digital Rights Diagnosing Digital Rights Management ProblemsManagement Problems

Common DRM-related issues/failures Common DRM-related issues/failures DRM license server not updated with the latest DRM license server not updated with the latest verification keysverification keys

Attempting to playback content that require high Attempting to playback content that require high security levelsecurity level

Devices fails to playback content after a reboot or Devices fails to playback content after a reboot or power failurepower failure

Devcert.dat and Drmstore.dat are never created on Devcert.dat and Drmstore.dat are never created on the devicethe device

Attaching the debugger to a DRM imageAttaching the debugger to a DRM image

Trying to perform non-silent DLA with an image Trying to perform non-silent DLA with an image that doesn’t include a browserthat doesn’t include a browser

Developing Custom Digital Rights Developing Custom Digital Rights Management ApplicationManagement Application

CE’s E2E DRM solutionCE’s E2E DRM solutionRelies on the CE DirectShow splitter to parse the Relies on the CE DirectShow splitter to parse the ASF header file and make the appropriate calls to ASF header file and make the appropriate calls to the DRM systemthe DRM system

Custom DRM applicationCustom DRM applicationGain greater control over the license acquisition Gain greater control over the license acquisition and playback processand playback process

Use the CE DRM v10 API to directly access the Use the CE DRM v10 API to directly access the DRM system, requires the Lib and header files DRM system, requires the Lib and header files from the installation packagefrom the installation package

Custom application must be aware of the Custom application must be aware of the protected contents’ KIDsprotected contents’ KIDs

CE Digital Rights Management CE Digital Rights Management V10 API OverviewV10 API Overview

CeDRM_Mgr_Initialize()CeDRM_Mgr_Initialize()Initialize system’s internal DRM stateInitialize system’s internal DRM state

CeDRM_Mgr_SetV2Header()CeDRM_Mgr_SetV2Header()Provides content header to the DRM systemProvides content header to the DRM system

CeDRM_Mgr_Bind()CeDRM_Mgr_Bind()Searches the license store for a valid licenseSearches the license store for a valid license

CeDRM_Mgr_GenerateChallenge()CeDRM_Mgr_GenerateChallenge()Generates a license challenge requestGenerates a license challenge request

CeDRM_Mgr_ProcessResponse()CeDRM_Mgr_ProcessResponse()Store license returned from the license server to Store license returned from the license server to the local DRM storethe local DRM store

CE Digital Rights Management CE Digital Rights Management V10 API OverviewV10 API Overview

CeDRM_Mgr_Commit()CeDRM_Mgr_Commit()Commit to disk all metering and play count Commit to disk all metering and play count changes in the license storechanges in the license store

CeDRM_Mgr_Decrypt()CeDRM_Mgr_Decrypt()Protected content are decrypted in placeProtected content are decrypted in place

CeDRM_Mgr_GetLicenseData()CeDRM_Mgr_GetLicenseData()Retrieves the license rights for contentsRetrieves the license rights for contents

CeDRM_Mgr_GetDeviceProperty()CeDRM_Mgr_GetDeviceProperty()Retrieves device properties for DLARetrieves device properties for DLA

Other APIs for metering & secure clockOther APIs for metering & secure clock

Retrieving Digital Rights Retrieving Digital Rights Management License Data Management License Data // Create a DRM manager context// Create a DRM manager contextDRM_MANAGER_CONTEXT *g_pManagerContextDRM_MANAGER_CONTEXT *g_pManagerContextg_pManagerContext = (DRM_MANAGER_CONTEXT*) g_pManagerContext = (DRM_MANAGER_CONTEXT*)

HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DRM_MANAGER_CONTEXT));sizeof(DRM_MANAGER_CONTEXT));

//Initialize the DRM system//Initialize the DRM systemCeDRM_Mgr_Initialize(g_pManagerContext, &wszDeviceStoreName);CeDRM_Mgr_Initialize(g_pManagerContext, &wszDeviceStoreName);

//Set the V2 header//Set the V2 headerCeDRM_Mgr_SetV2Header (g_pManagerContext, lpHeader, cbHeader);CeDRM_Mgr_SetV2Header (g_pManagerContext, lpHeader, cbHeader);

//Retrive the license rights for a piece of content //Retrive the license rights for a piece of content const DRM_CONST_STRING *proparray[] = {&g_dstrWMDRM_PLAY};const DRM_CONST_STRING *proparray[] = {&g_dstrWMDRM_PLAY};DRM_LICENSE_STATE_DATA statedatavales[NO_OF(proparray)];DRM_LICENSE_STATE_DATA statedatavales[NO_OF(proparray)];CeDRM_Mgr_GetLicenseData( g_pManagerContext, proparray, CeDRM_Mgr_GetLicenseData( g_pManagerContext, proparray,

statedatavales, NO_OF( proparray ) );statedatavales, NO_OF( proparray ) );

Additional Digital Rights Additional Digital Rights Management ResourcesManagement Resources

Web ResourcesWeb ResourcesWM DRM Web Site: WM DRM Web Site: http://www.microsoft.com/windows/http://www.microsoft.com/windows/windowsmedia/drm.aspxwindowsmedia/drm.aspx

WM DRM Partners:WM DRM Partners:http://www.microsoft.com/windowsmedia/drm/9series/providers.aspxhttp://www.microsoft.com/windowsmedia/drm/9series/providers.aspx

Windows Media Community:Windows Media Community:http://www.microsoft.com/http://www.microsoft.com/windowsmedia/community.aspxwindowsmedia/community.aspx

Windows Media DRM Newsgroup:Windows Media DRM Newsgroup:news://news://msnews.microsoft.com/microsoft.public.windowsmedia.drmmsnews.microsoft.com/microsoft.public.windowsmedia.drm

[email protected]@microsoft.com for general questions for general questions

While At MEDC 2005…While At MEDC 2005…Fill outFill out an evaluation for this session an evaluation for this session

Randomly selected instant Randomly selected instant WINWIN prizes! prizes!

Use Use real technology in a labreal technology in a lab Instructor led Instructor led Reef E/FReef E/F & & Breakers LBreakers L

Self-paced Self-paced Reef B/CReef B/C

VisitVisit the Microsoft Product Pavilion the Microsoft Product Pavilion

in the Exhibit Hall in the Exhibit Hall Shorelines BShorelines B

After The Conference…After The Conference…

DevelopDevelop

BuildBuild

InstallInstall

BuildBuild

JoinJoin

InstallInstall

EnterEnter

JoinJoin

Full-featured trial versions of Windows CE Full-featured trial versions of Windows CE and/or Windows XP Embeddedand/or Windows XP Embedded

Cool stuff & tell us about it: Cool stuff & tell us about it: msdn.microsoft.com/embedded/community

Windows Embedded Partner Program:Windows Embedded Partner Program:www.mswep.com

Windows Mobile 5.0 Eval Kit including Windows Mobile 5.0 Eval Kit including Visual Studio 2005 Beta 2Visual Studio 2005 Beta 2

Mobile2Market Contest and win up to $25000: Mobile2Market Contest and win up to $25000: mobile2marketcontest.com

Microsoft Solutions Partner Program:Microsoft Solutions Partner Program:partner.microsoft.com

Tools & ResourcesTools & Resources

msdn.microsoft.com/msdn.microsoft.com/ embeddedembedded

microsoft.public.microsoft.public. windowsxp.embeddedwindowsxp.embedded windowsce.platbuilderwindowsce.platbuilder windowsce.embedded.vcwindowsce.embedded.vc

blogs.msdn.com/blogs.msdn.com/ mikehallmikehall

Windows CE 5.0 Eval KitWindows CE 5.0 Eval KitWindows XP Embedded Eval KitWindows XP Embedded Eval Kit

msdn.microsoft.com/msdn.microsoft.com/ mobilitymobility

microsoft.public.microsoft.public. pocketpc.developer pocketpc.developer smartphone.developer smartphone.developer dotnet.framework.compactframeworkdotnet.framework.compactframework

blogs.msdn.com/blogs.msdn.com/ windowsmobilewindowsmobile vsdteamvsdteam netcfteamnetcfteam

Windows Mobile 5.0 Eval KitWindows Mobile 5.0 Eval Kit

WebsitesWebsites

NewsgroupsNewsgroups

BlogsBlogs

ToolsTools

BuildBuild DevelopDevelop

© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.