Compartilhar via


Usando tipos de exclusão mútua personalizados

[O recurso associado a esta página, Windows Media Format 11 SDK, é um recurso herdado. Ele foi substituído por Leitor de Origem e Gravador de Coletor. O Leitor de Origem e o Gravador de Coletor foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use o Leitor de Origem e o Gravador de Coletor em vez do SDK do Windows Media Format 11, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

Você pode usar objetos de exclusão mútua em um perfil para atender às necessidades de cenários personalizados. Ao passar o valor do GUID CLSID_WMMUTEX_Unknown para IWMMutualExclusion::SetType, você informa ao objeto de exclusão mútua que está usando um cenário personalizado.

Você deve controlar manualmente a seleção de fluxo ao ler um arquivo com um valor de exclusão mútua personalizado. O objeto reader usará o primeiro fluxo que você adicionar à exclusão mútua como padrão.

Use as seguintes etapas para criar um objeto de exclusão mútua personalizado e adicioná-lo a um perfil:

  1. Crie um gerenciador de perfil chamando a função WMCreateProfileManager .

  2. Comece com um perfil existente ou crie um totalmente novo.

  3. Adicione fluxos ao novo perfil chamando IWMProfile::CreateNewStream. Configure os fluxos conforme necessário usando os métodos de IWMStreamConfig. Você também pode chamar QueryInterface para acessar outras interfaces no objeto de configuração de fluxo.

    CreateNewStream cria apenas um objeto de configuração de fluxo e não afeta o perfil. Depois que um fluxo é configurado corretamente, você deve chamar IWMProfile::AddStream para adicionar o fluxo ao perfil.

  4. Crie um objeto de exclusão mútua chamando IWMProfile::CreateNewMutualExclusion.

  5. Adicione os fluxos desejados ao objeto de exclusão mútua chamando IWMStreamList::AddStream (disponível diretamente de IWMMutualExclusion, que herda de IWMStreamList).

  6. Defina o tipo de exclusão mútua como personalizado chamando IWMMutualExclusion::SetType. Passe o CLSID_WMMUTEX_Unknown como o GUID do tipo.

  7. Adicione o objeto de exclusão mútua configurado ao perfil chamando IWMProfile::AddMutualExclusion.

IWMMutualExclusion Interface

IWMProfile Interface

IWMProfileManager Interface

IWMStreamConfig Interface

IWMStreamList Interface

Usando exclusão mútua

WMCreateProfileManager