IMMDeviceEnumerator::GetDevice-Methode (mmdeviceapi.h)

Die GetDevice-Methode ruft ein Audioendpunktgerät ab, das durch eine Endpunkt-ID-Zeichenfolge identifiziert wird.

Syntax

HRESULT GetDevice(
  [in]  LPCWSTR   pwstrId,
  [out] IMMDevice **ppDevice
);

Parameter

[in] pwstrId

Zeigen Sie auf eine Zeichenfolge, die die Endpunkt-ID enthält. Der Aufrufer ruft diese Zeichenfolge in der Regel aus der IMMDevice::GetId-Methode oder von einer der Methoden in der IMMNotificationClient-Schnittstelle ab.

Ab Windows 11, Version 24H2 (Build 26100), kann der Aufrufer auch eine Zeichenfolge übergeben, die von der eigenschaft PKEY_AudioEndpoint_StableId eines Audioendpunkts abgerufen wird, um einen Audioendpunkt mit einer übereinstimmenden StableId abzurufen.

[out] ppDevice

Zeiger auf eine Zeigervariable, in die die Methode die Adresse der IMMDevice-Schnittstelle für das angegebene Gerät schreibt. Über diese Methode erhält der Aufrufer einen gezählten Verweis auf die Schnittstelle. Der Aufrufer ist dafür verantwortlich, die Schnittstelle freizugeben, wenn sie nicht mehr benötigt wird, indem die Release-Methode der Schnittstelle aufgerufen wird. Wenn der GetDevice-Aufruf fehlschlägt, ist *ppDeviceNULL.

Zurückgegebener Wert

Wenn die Methode erfolgreich ist, wird S_OK zurückgegeben. Wenn ein Fehler auftritt, enthalten mögliche Rückgabecodes, sind jedoch nicht beschränkt auf die in der folgenden Tabelle gezeigten Werte.

Rückgabecode Description
E_POINTER
Der Parameter pwstrId oder ppDevice ist NULL.
E_NOTFOUND
Die Geräte-ID identifiziert kein Audiogerät, das sich in diesem System befindet.
E_OUTOFMEMORY
Nicht genügend Arbeitsspeicher.

Hinweise

Wenn zwei Programme in zwei verschiedenen Prozessen ausgeführt werden und beide auf dasselbe Audioendpunktgerät zugreifen müssen, kann ein Programm die IMMDevice-Schnittstelle des Geräts nicht einfach an das andere Programm übergeben. Die Programme können jedoch auf dasselbe Gerät zugreifen, indem Sie die folgenden Schritte ausführen:

  1. Das erste Programm ruft die IMMDevice::GetId-Methode im ersten Prozess auf, um die Endpunkt-ID-Zeichenfolge abzurufen, die das Gerät identifiziert.
  2. Das erste Programm übergibt die Endpunkt-ID-Zeichenfolge über die Prozessgrenze an das zweite Programm.
  3. Um einen Verweis auf die IMMDevice-Schnittstelle des Geräts im zweiten Prozess abzurufen, ruft das zweite Programm GetDevice mit der Endpunkt-ID-Zeichenfolge auf.
Weitere Informationen zur GetDevice-Methode finden Sie in den folgenden Themen: Codebeispiele, die die GetDevice-Methode verwenden, finden Sie in den folgenden Themen:

Requirements

Anforderung Wert
Mindestens unterstützter Client Windows Vista [nur Desktop-Apps]
Mindestanforderungen für unterstützte Server Windows Server 2008 [Nur Desktop-Apps]
Zielplattform Windows
Header mmdeviceapi.h

Siehe auch

IMMDevice-Schnittstelle

IMMDevice::GetId

IMMDeviceEnumerator-Schnittstelle

IMMNotificationClient-Schnittstelle