Обязательные и необязательные интерфейсы
В следующей таблице описаны обязательные и необязательные интерфейсы и методы для реализации поставщиками услуг. Должны быть реализованы все интерфейсы с одним или несколькими обязательными методами. Обязательный метод не может возвращать WMDM_E_NOTSUPPORTED или E_NOTIMPL.
Интерфейс и метод | Вариант реализации |
---|---|
IMDServiceProvider::EnumDevices | Mandatory. |
IMDServiceProvider::GetDeviceCount | Mandatory. |
IMDServiceProvider2::CreateDevice | Необязательный элемент. Этот метод должен быть реализован для поддержки PnP и Windows Обозреватель. |
IMDSPDevice::EnumStorage | Mandatory. |
IMDSPDevice::GetDeviceIcon | Mandatory. |
IMDSPDevice::GetFormatSupport | Mandatory. |
IMDSPDevice::GetManufacturer | Mandatory. |
IMDSPDevice::GetName | Mandatory. |
IMDSPDevice::GetPowerSource | Необязательный элемент. |
IMDSPDevice::GetSerialNumber | Необязательный элемент. Для передачи защищенного содержимого диспетчер устройств Windows Media использует IMDSPStorageGlobals::GetSerialNumber. |
IMDSPDevice::GetStatus | Mandatory. |
IMDSPDevice::GetType | Mandatory. |
IMDSPDevice::GetVersion | Необязательный элемент. |
IMDSPDevice::SendOpaqueCommand | Необязательный элемент. |
IMDSPDevice2::GetCanonicalName | Необязательный элемент. |
IMDSPDevice2::GetFormatSupport2 | Mandatory. |
IMDSPDevice2::GetSpecifyPropertyPages | Необязательный элемент. |
IMDSPDevice2::GetStorage | Необязательный элемент. |
Интерфейс IMDSPDeviceControl | Необязательный элемент. |
IMDSPEnumDevice::Clone | Mandatory. |
IMDSPEnumDevice::Next | Mandatory. |
IMDSPEnumDevice::Reset | Mandatory. |
IMDSPEnumDevice::Skip | Mandatory. |
IMDSPEnumStorage::Clone | Mandatory. |
IMDSPEnumStorage::Next | Mandatory. |
IMDSPEnumStorage::Reset | Mandatory. |
IMDSPEnumStorage::Skip | Mandatory. |
IMDSPObject::Close | Mandatory. |
IMDSPObject::D elete | Mandatory. |
IMDSPObject::Move | Необязательный элемент. |
IMDSPObject::Open | Mandatory. |
IMDSPObject::Read | Обязательный (при необходимости поддержки Медиаплеер Windows). |
IMDSPObject::Rename | Необязательный элемент. |
IMDSPObject::Seek | Необязательный элемент. |
IMDSPObject::Write | Mandatory. |
Интерфейс IMDSPObjectInfo | Необязательный элемент. |
Интерфейс IMDSPRevoked | Необязательный элемент. |
IMDSPStorage::CreateStorage | Обязательно, только если параметр dwAttributes WMDM_FILE_ATTR_FILE. |
IMDSPStorage::EnumStorage | Mandatory. |
IMDSPStorage::GetAttributes | Mandatory. |
IMDSPStorage::GetDate | Mandatory. |
IMDSPStorage::GetName | Mandatory. |
IMDSPStorage::GetRights | Необязательный элемент. |
IMDSPStorage::GetSize | Mandatory. |
IMDSPStorage::GetStorageGlobals | Mandatory. |
IMDSPStorage::SendOpaqueCommands | Необязательный элемент. |
IMDSPStorage::SetAttributes | Необязательный элемент. |
IMDSPStorage2::CreateStorage2 | Mandatory. |
IMDSPStorage2::GetAttributes2 | Mandatory. |
IMDSPStorage2::GetStorage | Необязательный элемент. |
IMDSPStorage2::SetAttributes2 | Необязательный элемент. |
Интерфейс IMDSPStorage3 | Необязательный элемент. Однако если параметру устройства UseMetadataViews присвоено значение 1, этот интерфейс необходимо реализовать, и IMDSPStorage3::GetMetadata становится обязательным, хотя IMDSPStorage3::SetMetadata по-прежнему является необязательным. |
IMDSPStorageGlobals::GetCapabilities | Mandatory. |
IMDSPStorageGlobals::GetDevice | Mandatory. |
IMDSPStorageGlobals::GetRootStorage | Mandatory. |
IMDSPStorageGlobals::GetSerialNumber | Обязательный только для PDDRM. В противном случае необязательно. |
IMDSPStorageGlobals::GetStatus | Mandatory. |
IMDSPStorageGlobals::GetTotalBad | Mandatory. |
IMDSPStorageGlobals::GetTotalFree | Mandatory. |
IMDSPStorageGlobals::GetTotalSize | Mandatory. |
IMDSPStorageGlobals::Initialize | Необязательный элемент. Этот метод следует реализовать, если устройство поддерживает эту функцию. Если этот метод не реализован, IMDSPStorageGlobals::GetCapabilites должен возвращать WMDM_STORAGECAP_NOT_INITIALIZABLE в дополнение к любым другим флагам. |
IMDSPDevice3IMDSPObject2 IMDSPStorage4 |
Требуется для поддержки автоматической синхронизации с Медиаплеер Windows |