Udostępnij za pośrednictwem


Ciągi znakowe identyfikatorów punktu końcowego

W systemie Windows Vista system generuje ciągi identyfikatorów punktu końcowego w celu zidentyfikowania urządzeń punktu końcowego audio w systemie. Ciąg identyfikatora punktu końcowego jest ciągiem znaków szerokich zakończonym wartością null. Ciąg identyfikatora punktu końcowego dla określonego urządzenia punktu końcowego audio jednoznacznie identyfikuje urządzenie wśród wszystkich urządzeń punktu końcowego audio w systemie.

Jeśli system zawiera co najmniej dwa identyczne urządzenia adaptera audio, odpowiednie urządzenia punktu końcowego audio będą miały identyczne przyjazne nazwy, ale każde urządzenie punktu końcowego będzie mieć unikatowy ciąg identyfikatora punktu końcowego. Aby uzyskać więcej informacji na temat uzyskiwania przyjaznej nazwy urządzenia punktu końcowego, zobacz Właściwości urządzenia.

Po uzyskaniu instancji interfejsu IMMDevice dla urządzenia punktu końcowego audio klient może wywołać metodę IMMDevice::GetId, aby uzyskać ciąg identyfikacyjny punktu końcowego urządzenia. Klient może użyć ciągu identyfikatora punktu końcowego, aby w późniejszym czasie lub w innym procesie utworzyć instancję urządzenia punktu końcowego audio, wywołując metodę IMMDeviceEnumerator::GetDevice.

Klient może ustawić powiadomienie, gdy zmieni się stan dowolnego urządzenia końcowego audio. Aby otrzymywać powiadomienia, klient implementuje interfejs IMMNotificationClient i rejestruje ten interfejs za pomocą interfejsu API MMDevice. Gdy stan urządzenia punktu końcowego zmienia się, interfejs API MMDevice wywołuje odpowiednią metodę w interfejsie klienta EDataFlow. Jednym z parametrów wejściowych metody jest ciąg identyfikatora punktu końcowego, który identyfikuje urządzenie punktu końcowego, którego stan uległ zmianie. Aby uzyskać więcej informacji na temat EDataFlow, zobacz Zdarzenia Urządzeń.

Starsze interfejsy API audio, takie jak DirectSound i funkcje multimedialne systemu Windows, mają własne interfejsy do wyliczania i identyfikowania urządzeń audio. W systemie Windows Vista te interfejsy zostały rozszerzone w celu dostarczania ciągów identyfikatorów punktów końcowych, które identyfikują urządzenia będące podstawą abstrakcji urządzeń prezentowanych przez interfejsy API.

Podczas wyliczania urządzeń DirectSound, DirectSound dostarcza ciąg identyfikatora punktu końcowego dla każdego urządzenia, które enumeruje. Aby uzyskać więcej informacji, zobacz Audio Events for Legacy Audio Applications.

Aby uzyskać ciąg identyfikatora punktu końcowego dla starszego urządzenia przetwarzającego fale, użyj funkcji waveOutMessage lub waveInMessage, aby wysłać komunikat DRV_QUERYFUNCTIONINSTANCEID do sterownika tego urządzenia. Aby zapoznać się z przykładem kodu pokazującym użycie tego komunikatu, zobacz Role urządzeń dla starszych aplikacji multimedialnych systemu Windows.

Aby uzyskać więcej informacji na temat używania podstawowych interfejsów API audio w celu ulepszenia aplikacji korzystających ze starszych interfejsów API audio, zobacz Współdziałanie ze starszymi interfejsami API audio.

Klienci powinni traktować zawartość ciągu identyfikatora punktu końcowego jako nieprzezroczystą. Oznacza to, że klienci nie powinni próbować analizować zawartości ciągu w celu uzyskania informacji o urządzeniu. Przyczyną jest to, że format ciągu jest niezdefiniowany i może ulec zmianie z jednej implementacji modułu systemu interfejsu API MMDevice do następnego.

Okres istnienia ciągu identyfikatora punktu końcowego jest powiązany z instalacją urządzenia. Ciąg identyfikatora punktu końcowego urządzenia zmienia się, jeśli użytkownik uaktualni sterownik urządzenia lub jeśli użytkownik odinstaluje urządzenie i zainstaluje je ponownie. Jednak ciąg identyfikatora punktu końcowego pozostaje niezmieniony w przypadku ponownego uruchomienia systemu, a ciąg identyfikatora punktu końcowego urządzenia audio USB pozostaje niezmieniony, jeśli użytkownik odłączy urządzenie i podłącza go z powrotem.

urządzenia końcowe audio