Slutpunkts-ID-strängar

I Windows Vista genererar systemet slutpunkts-ID-strängar för att identifiera ljudslutpunktsenheter i systemet. En slutpunkts-ID-sträng är en null-avslutad sträng med breda tecken. Slutpunkts-ID-strängen för en viss ljudslutpunktsenhet identifierar enheten unikt bland alla ljudslutpunktsenheter i systemet.

Om ett system innehåller två eller flera identiska ljudkortsenheter har motsvarande ljudslutpunktsenheter identiska egna namn, men varje slutpunktsenhet har en unik slutpunkts-ID-sträng. Mer information om hur du hämtar det vänliga namnet på en slutpunktsenhet finns i Enhetsegenskaper.

När du har hämtat en IMMDevice- gränssnittsinstans för en ljudslutpunktsenhet kan en klient anropa metoden IMMDevice::GetId för att hämta slutpunkts-ID-strängen för enheten. En klient kan använda slutpunkts-ID-strängen för att skapa en instans av ljudslutpunktsenheten vid ett senare tillfälle eller i en annan process genom att anropa metoden IMMDeviceEnumerator::GetDevice.

En klient kan ordna så att den får ett meddelande när statusen för en ljudslutpunktsenhet ändras. För att ta emot meddelanden implementerar klienten ett IMMNotificationClient--gränssnitt och registrerar gränssnittet med MMDevice-API:et. När statusen för en slutpunktsenhet ändras anropar MMDevice-API:et lämplig metod i klientens EDataFlow--gränssnitt. En av indataparametrarna för metoden är slutpunkts-ID-strängen som identifierar slutpunktsenheten vars status har ändrats. Mer information om EDataFlowfinns i Enhetshändelser.

Äldre ljud-API:er som DirectSound och Multimediefunktionerna i Windows har egna gränssnitt för att räkna upp och identifiera ljudenheter. I Windows Vista har dessa gränssnitt utökats för att tillhandahålla de slutpunkts-ID-strängar som identifierar de slutpunktsenheter som ligger till grund för de enhetsabstraktioner som presenteras av API:erna.

Under DirectSound-enhetsuppräkning tillhandahåller DirectSound slutpunkts-ID-strängen för varje enhet som den räknar upp. För ytterligare information, se Ljudhändelser för äldre ljudapplikationer.

Om du vill hämta slutpunkts-ID-strängen för en äldre vågformsenhet använder du funktionen waveOutMessage eller waveInMessage för att skicka ett DRV_QUERYFUNCTIONINSTANCEID meddelande till drivrutinen för waveform-enheten. Ett kodexempel som visar användningen av det här meddelandet finns i Enhetsroller för äldre Windows Multimedia-program.

Mer information om hur du använder funktionerna i kärnljud-API:er för att förbättra program som använder äldre ljud-API:er finns i samverkan med äldre ljud-API:er.

Klienter bör behandla innehållet i slutpunkts-ID-strängen som ogenomskinlig. Klienter bör alltså inte försöka parsa innehållet i strängen för att hämta information om enheten. Anledningen är att strängformatet är odefinierat och kan ändras från en implementering av MMDevice API-systemmodulen till nästa.

Livslängden för en slutpunkts-ID-sträng är kopplad till enhetsinstallationen. Slutpunkts-ID-strängen för en enhet ändras om användaren uppgraderar enhetsdrivrutinen eller om användaren avinstallerar enheten och installerar den igen. Slutpunkts-ID-strängen förblir dock oförändrad i systemomstarter och slutpunkts-ID-strängen för en USB-ljudenhet förblir oförändrad om användaren kopplar ur enheten och ansluter den igen.

Eftersom uppdateringar av operativsystem och ljuddrivrutiner kan ändra slutpunkts-ID-strängen för en fysisk ljudslutpunkt tillhandahåller slutpunkts-ID:t ingen tillförlitlig mekanism för ett program att komma ihåg och spåra en ljudslutpunkt mellan användarsessioner. En kommunikationsapp kanske till exempel vill komma ihåg en användares val av mikrofon och högtalare som ska användas för ett samtal. Om programmet använder slutpunkts-ID:t för att spåra användarens inställningar kan en uppdatering av ljuddrivrutinen som ändrar slutpunkts-ID:t för mikrofonen/högtalarna göra att programmet förlorar användarens inställningar.

Från och med Windows 11 version 24H2 (version 26100) tillhandahåller Windows en PKEY_AudioEndpoint_StableId egenskap på en ljudslutpunkt som när den är tillgänglig kan användas av ett program för att tillförlitligt spåra ljudslutpunkter mellan operativsystem och uppdateringar av ljuddrivrutiner. PKEY_AudioEndpoint_StableId är en opak, skiftlägeskänslig sträng som en app kan spara och senare använda i ett anrop av IMMDeviceEnumerator::GetDevice för att hämta samma ljudslutpunkt. Mer information finns i PKEY_AudioEndpoint_StableId.

ljudslutpunktsenheter