1 / 12

Optical Platform Enabling the vision

Optical Platform Enabling the vision. Microsoft Corporation. Agenda. IMAPIv2 architecture Creating IMAPIv2 extensions Erase Extension Example Using IMAPIv2 extensions Shell Extension Example Additional Resources Discussion/Q&A. IMAPIv2 Architecture. IMAPIv2 Layers (User Mode).

regina
Download Presentation

Optical Platform Enabling the vision

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Optical PlatformEnabling the vision Microsoft Corporation

  2. Agenda • IMAPIv2 architecture • Creating IMAPIv2 extensions • Erase Extension Example • Using IMAPIv2 extensions • Shell Extension Example • Additional Resources • Discussion/Q&A

  3. IMAPIv2 Architecture IMAPIv2 Layers (User Mode) Helper Objects Content Formats Ex: UDF/Joliet/ISO9660 Disc Master EnumeratesCD/DVDDevices Physical Media Formats Ex: Data discs, media types, audio CDs Write Engine Writes largesectionsof data to the media Disc Recorder Ex: Sends commands to device

  4. IMAPIv2 Architecture IMAPIv2 Layers (User Mode) Helper Objects User-presentedcontent Content Formats Ex: UDF/Joliet/ISO9660 Disc Master EnumeratesCD/DVDDevices Physical Media Formats Ex: Data discs, media types, audio CDs Write Engine Writes largesectionsof data to the media Disc Recorder Ex: Sends commands to device

  5. IMAPIv2 Architecture IMAPIv2 Layers (User Mode) Helper Objects Content Formats Ex: UDF/Joliet/ISO9660 Disc Master EnumeratesCD/DVDDevices Stream ofpreparedcontent Physical Media Formats Ex: Data discs, media types, audio CDs Write Engine Writes largesectionsof data to the media Disc Recorder Ex: Sends commands to device

  6. IMAPIv2 Architecture IMAPIv2 Layers (User Mode) Helper Objects Content Formats Ex: UDF/Joliet/ISO9660 Disc Master EnumeratesCD/DVDDevices Physical Media Formats Ex: Data discs, media types, audio CDs Write Engine Writes largesectionsof data to the media Logical device commands Disc Recorder Ex: Sends commands to device

  7. IMAPIv2 Architecture IMAPIv2 Layers (User Mode) Helper Objects Content Formats Ex: UDF/Joliet/ISO9660 Disc Master EnumeratesCD/DVDDevices Physical Media Formats Ex: Data discs, media types, audio CDs Write Engine Writes largesectionsof data to the media OS packageddevicecommands Disc Recorder Ex: Sends commands to device

  8. Extending IMAPIv2Hardware erase example • Example Scenario • A new type of erase is supported by hardware • Developer’s goal is to enable this new functionality through Windows for the end user • Strategy • Create an extension of IMAPIv2 to support the new erase method • Expose functionality to users through a shell extension • Solution Analysis • Extend IMAPIv2 at the Disc Format level • Does not involve user content • Sends a specific sequence of logical commands to the device • Implementation involves media-specific information

  9. IMAPIv2 Erase ExtensionHardware erase example interface IEraseSample : IDiscFormat2 { // properties HRESULT Recorder([in] IDiscRecorder2 * value); HRESULT FullErase([in] VARIANT_BOOL value ); HRESULT ClientName([in] BSTR name); // methods HRESULT EraseMedia(); } • Simple interface that extends IDiscFormat2 • Includes new scenario specific methods and properties

  10. Using IMAPIv2 ExtensionsHardware erase example HRESULT PerformErase(VARIANT_BOOL vbFullErase, IDiscRecorder2 *pDiscRecorder) { // create the new object CoCreateInstance(CLSID_EraseSample, NULL, CLSCTX_ALL, IID_PPV_ARGS(&pErase)); // use IDiscFormat2 method to ensure the operation is supported pErase->IsCurrentMediaSupported(pDiscRecorder, &vbEraseSupported); if (vbEraseSupported) { // attach the standard disc recorder pErase->put_Recorder(pDiscRecorder); // set the appropriate properties pErase->put_FullErase(vbFullErase); pErase->put_ClientName(SysAllocString(L"EraseShellExt")); // perform the erase! pErase->EraseMedia(); } }

  11. Additional Resources • Documentation and Examples • MSDN • http://msdn2.microsoft.com/en-us/library/aa366450.aspx • WDK and SDK • IMAPIv2 on WHDC • http://www.microsoft.com/whdc/device/stream/DVD/default.mspx • Contact Information • Optical Platform Discussion Forum • http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=490 • E-mail: • Please don’t send code to this alias! • Optissue @ microsoft.com

  12. © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

More Related