Compartilhar via


Interfaces obrigatórias e opcionais

A tabela a seguir descreve as interfaces e métodos obrigatórios e opcionais para os provedores de serviços implementarem. Todas as interfaces com um ou mais métodos obrigatórios devem ser implementadas. Um método obrigatório não pode retornar WMDM_E_NOTSUPPORTED ou E_NOTIMPL.

Interface e método Opção de implementação
IMDServiceProvider::EnumDevices Mandatory.
IMDServiceProvider::GetDeviceCount Mandatory.
IMDServiceProvider2::CreateDevice Opcional. Esse método deve ser implementado para suporte ao PnP e ao Windows Explorer.
IMDSPDevice::EnumStorage Mandatory.
IMDSPDevice::GetDeviceIcon Mandatory.
IMDSPDevice::GetFormatSupport Mandatory.
IMDSPDevice::GetManufacturer Mandatory.
IMDSPDevice::GetName Mandatory.
IMDSPDevice::GetPowerSource Opcional.
IMDSPDevice::GetSerialNumber Opcional. Para transferência de conteúdo protegida, o Gerenciador de Dispositivos do Windows Media usa IMDSPStorageGlobals::GetSerialNumber.
IMDSPDevice::GetStatus Mandatory.
IMDSPDevice::GetType Mandatory.
IMDSPDevice::GetVersion Opcional.
IMDSPDevice::SendOpaqueCommand Opcional.
IMDSPDevice2::GetCanonicalName Opcional.
IMDSPDevice2::GetFormatSupport2 Mandatory.
IMDSPDevice2::GetSpecifyPropertyPages Opcional.
IMDSPDevice2::GetStorage Opcional.
IMDSPDeviceControl Interface Opcional.
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 Opcional.
IMDSPObject::Open Mandatory.
IMDSPObject::Read Obrigatório (se Reprodutor Multimídia do Windows suporte for desejado).
IMDSPObject::Rename Opcional.
IMDSPObject::Seek Opcional.
IMDSPObject::Write Mandatory.
IMDSPObjectInfo Interface Opcional.
IMDSPRevoked Interface Opcional.
IMDSPStorage::CreateStorage Obrigatório somente se dwAttributes for WMDM_FILE_ATTR_FILE.
IMDSPStorage::EnumStorage Mandatory.
IMDSPStorage::GetAttributes Mandatory.
IMDSPStorage::GetDate Mandatory.
IMDSPStorage::GetName Mandatory.
IMDSPStorage::GetRights Opcional.
IMDSPStorage::GetSize Mandatory.
IMDSPStorage::GetStorageGlobals Mandatory.
IMDSPStorage::SendOpaqueCommands Opcional.
IMDSPStorage::SetAttributes Opcional.
IMDSPStorage2::CreateStorage2 Mandatory.
IMDSPStorage2::GetAttributes2 Mandatory.
IMDSPStorage2::GetStorage Opcional.
IMDSPStorage2::SetAttributes2 Opcional.
IMDSPStorage3 Interface Opcional. No entanto, se o parâmetro de dispositivo UseMetadataViews estiver definido como 1, essa interface deverá ser implementada e IMDSPStorage3::GetMetadata se tornará obrigatório, embora IMDSPStorage3::SetMetadata ainda seja opcional.
IMDSPStorageGlobals::GetCapabilities Mandatory.
IMDSPStorageGlobals::GetDevice Mandatory.
IMDSPStorageGlobals::GetRootStorage Mandatory.
IMDSPStorageGlobals::GetSerialNumber Obrigatório somente para PDDRM. Caso contrário, opcional.
IMDSPStorageGlobals::GetStatus Mandatory.
IMDSPStorageGlobals::GetTotalBad Mandatory.
IMDSPStorageGlobals::GetTotalFree Mandatory.
IMDSPStorageGlobals::GetTotalSize Mandatory.
IMDSPStorageGlobals::Initialize Opcional. Esse método deverá ser implementado se o dispositivo der suporte a essa funcionalidade. Se esse método não for implementado, IMDSPStorageGlobals::GetCapabilites deverá retornar WMDM_STORAGECAP_NOT_INITIALIZABLE além de outros sinalizadores.
IMDSPDevice3IMDSPObject2
IMDSPStorage4
Necessário para dar suporte à sincronização automática com Reprodutor Multimídia do Windows

Criando um provedor de serviços