Cadeias de caracteres de ID de ponto de extremidade
No Windows Vista, o sistema gera cadeias de caracteres de ID de ponto de extremidade para identificar os dispositivos de ponto de extremidade de áudio no sistema. Uma cadeia de caracteres de ID de ponto de extremidade é uma cadeia de caracteres largos terminada em nulo. A cadeia de caracteres de ID de ponto de extremidade para um dispositivo de ponto de extremidade de áudio específico identifica exclusivamente o dispositivo entre todos os dispositivos de ponto de extremidade de áudio no sistema.
Se um sistema contiver dois ou mais dispositivos de adaptador de áudio idênticos, os dispositivos de ponto de extremidade de áudio correspondentes terão nomes amigáveis idênticos, mas cada dispositivo de ponto de extremidade terá uma cadeia de caracteres de ID de ponto de extremidade exclusiva. Para obter mais informações sobre como obter o nome amigável de um dispositivo de ponto de extremidade, consulte Propriedades do dispositivo.
Depois de obter uma instância de interface IMMDevice para um dispositivo de ponto de extremidade de áudio, um cliente pode chamar o método IMMDevice::GetId para obter a cadeia de caracteres de ID de ponto de extremidade para o dispositivo. Um cliente pode usar a cadeia de caracteres de ID de ponto de extremidade para criar uma instância do dispositivo de ponto de extremidade de áudio posteriormente ou em um processo diferente chamando o método IMMDeviceEnumerator::GetDevice .
Um cliente pode organizar para receber uma notificação quando o status de qualquer dispositivo de ponto de extremidade de áudio for alterado. Para receber notificações, o cliente implementa uma interface IMMNotificationClient e registra essa interface com a API MMDevice. Quando o status de um dispositivo de ponto de extremidade é alterado, a API MMDevice chama o método apropriado na interface EDataFlow do cliente. Um dos parâmetros de entrada para o método é a cadeia de caracteres de ID de ponto de extremidade que identifica o dispositivo de ponto de extremidade cujo status foi alterado. Para obter mais informações sobre EDataFlow, consulte Eventos de dispositivo.
APIs de áudio herdadas, como DirectSound e as funções multimídia do Windows, têm suas próprias interfaces para enumerar e identificar dispositivos de áudio. No Windows Vista, essas interfaces foram estendidas para fornecer as cadeias de caracteres de ID de ponto de extremidade que identificam os dispositivos de ponto de extremidade subjacentes às abstrações de dispositivo apresentadas pelas APIs.
Durante a enumeração de dispositivo DirectSound, DirectSound fornece a cadeia de caracteres de ID de ponto de extremidade para cada dispositivo que ele enumera. Para obter mais informações, consulte Eventos de áudio para aplicativos de áudio herdados.
Para obter a cadeia de caracteres de ID de ponto de extremidade para um dispositivo de forma de onda herdado, use a função waveOutMessage ou waveInMessage para enviar uma mensagem de DRV_QUERYFUNCTIONINSTANCEID para o driver de dispositivo de forma de onda. Para obter um exemplo de código que mostra o uso dessa mensagem, consulte Funções de dispositivo para aplicativos multimídia herdados do Windows.
Para obter mais informações sobre como usar os recursos das APIs de áudio principais para aprimorar aplicativos que usam APIs de áudio herdadas, consulte Interoperabilidade com APIs de áudio herdadas.
Os clientes devem tratar o conteúdo da cadeia de caracteres de ID do ponto de extremidade como opaco. Ou seja, os clientes não devem tentar analisar o conteúdo da cadeia de caracteres para obter informações sobre o dispositivo. O motivo é que o formato da cadeia de caracteres é indefinido e pode mudar de uma implementação do módulo de sistema da API MMDevice para a próxima.
O tempo de vida de uma cadeia de caracteres de ID de ponto de extremidade está vinculado à instalação do dispositivo. A cadeia de caracteres de ID de ponto de extremidade de um dispositivo será alterada se o usuário atualizar o driver de dispositivo ou se o usuário desinstalar o dispositivo e instalá-lo novamente. No entanto, a cadeia de caracteres de ID de ponto de extremidade permanece inalterada em todas as reinicializações do sistema e a cadeia de caracteres de ID de ponto de extremidade de um dispositivo de áudio USB permanece inalterada se o usuário desconectar o dispositivo e conectá-lo novamente.
Tópicos relacionados