ADC Home > Reference Library > Reference > Darwin > Kernel Framework Reference

 


IODVDBlockStorageDriver

Inherits from:
IOCDBlockStorageDriver
Declared In:

Overview

Generic DVD Driver.

Discussion

Storage drivers are split into two parts: the Generic Driver handles all generic device issues, independent of the lower-level transport mechanism (e.g. SCSI, ATA, USB, FireWire). All storage operations at the Generic Driver level are translated into a series of generic device operations. These operations are passed via the Device Nub to a Transport Driver, which implements the appropriate transport-dependent protocol to execute these operations.

To determine the write-protect state of a device (or media), for example, the generic driver would issue a call to the Transport Driver's reportWriteProtection method. If this were a SCSI device, its Transport Driver would issue a Mode Sense command to extract the write-protection status bit. The Transport Driver then reports true or false to the generic driver.

The generic driver therefore has no knowledge of, or involvement with, the actual commands and mechanisms used to communicate with the device. It is expected that the generic driver will rarely, if ever, need to be subclassed to handle device idiosyncrasies; rather, the Transport Driver should be changed via overrides.

A generic driver could be subclassed to create a different type of generic device. The generic driver IODVDBlockStorageDriver class is a subclass of IOCDBlockStorageDriver, adding DVD functions. Similarly, the Transport Driver IODVDBlockStorageDevice is a subclass of IOCDBlockStorageDevice, adding DVD functions.



Functions

readStructure

Get control structures from the DVD media.

reportKey

Get key info from the DVD drive.

sendKey

Send key info to the DVD drive.


readStructure


Get control structures from the DVD media.

public

virtual IOReturn readStructure( IOMemoryDescriptor *buffer, const DVDStructureFormat format, const UInt32 address, const UInt8 layer, const UInt8 agid);
Parameters
buffer

A buffer containing information, as documented in the specification "MtFuji Commands For Multimedia Devices."

format

As documented by MtFuji. See DVDStructureFormat.

address

As documented by MtFuji.

layer

As documented by MtFuji.

agid

As documented by MtFuji.

Discussion

This function handles the getting of control structure data for the media.


reportKey


Get key info from the DVD drive.

public

virtual IOReturn reportKey( IOMemoryDescriptor *buffer, const DVDKeyClass keyClass, const UInt32 lba, const UInt8 agid, const DVDKeyFormat keyFormat);
Parameters
buffer

A buffer containing information, as documented in the specification "MtFuji Commands For Multimedia Devices."

keyClass

As documented by MtFuji. See DVDKeyClass.

lba

As documented by MtFuji.

agid

As documented by MtFuji.

keyFormat

As documented by MtFuji. See DVDKeyFormat.

Discussion

This function handles the getting of key- and encryption-related data for the drive.


sendKey


Send key info to the DVD drive.

public

virtual IOReturn sendKey( IOMemoryDescriptor *buffer, const DVDKeyClass keyClass, const UInt8 agid, const DVDKeyFormat keyFormat);
Parameters
buffer

A buffer containing information, as documented in the specification "MtFuji Commands For Multimedia Devices."

keyClass

As documented by MtFuji. See DVDKeyClass.

agid

As documented by MtFuji.

keyFormat

As documented by MtFuji. See DVDKeyFormat.

Discussion

This function handles the setting of key- and encryption-related data for the drive.


Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.

 

Last Updated: 2008-12-19