Metodo IMMDeviceEnumerator::GetDevice (mmdeviceapi.h)

Il metodo GetDevice recupera un dispositivo endpoint audio identificato da una stringa ID endpoint.

Sintassi

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

Parameters

[in] pwstrId

Puntatore a una stringa contenente l'ID endpoint. Il chiamante ottiene in genere questa stringa dal metodo IMMDevice::GetId o da uno dei metodi nell'interfaccia IMMNotificationClient .

A partire da Windows 11, versione 24H2 (build 26100), il chiamante può anche passare una stringa ottenuta dalla proprietà PKEY_AudioEndpoint_StableId su un endpoint audio, per recuperare un endpoint audio con un StableId corrispondente.

[out] ppDevice

Puntatore a una variabile puntatore in cui il metodo scrive l'indirizzo dell'interfaccia IMMDevice per il dispositivo specificato. Tramite questo metodo, il chiamante ottiene un riferimento contato all'interfaccia. Il chiamante è responsabile del rilascio dell'interfaccia, quando non è più necessario, chiamando il metodo Release dell'interfaccia. Se la chiamata GetDevice ha esito negativo, *ppDevice è NULL.

Valore restituito

Se il metodo ha esito positivo, viene restituito S_OK. Se ha esito negativo, i possibili codici restituiti includono, ma non sono limitati, i valori illustrati nella tabella seguente.

Codice restituito Description
E_POINTER
Il parametro pwstrId o ppDevice è NULL.
E_NOTFOUND
L'ID dispositivo non identifica un dispositivo audio presente in questo sistema.
E_OUTOFMEMORY
Memoria insufficiente.

Osservazioni:

Se due programmi sono in esecuzione in due processi diversi e entrambi devono accedere allo stesso dispositivo endpoint audio, un programma non può semplicemente passare l'interfaccia IMMDevice del dispositivo all'altro programma. Tuttavia, i programmi possono accedere allo stesso dispositivo seguendo questa procedura:

  1. Il primo programma chiama il metodo IMMDevice::GetId nel primo processo per ottenere la stringa id endpoint che identifica il dispositivo.
  2. Il primo programma passa la stringa id endpoint oltre il limite del processo al secondo programma.
  3. Per ottenere un riferimento all'interfaccia IMMDevice del dispositivo nel secondo processo, il secondo programma chiama GetDevice con la stringa id endpoint.
Per altre informazioni sul metodo GetDevice , vedere gli argomenti seguenti: Per esempi di codice che usano il metodo GetDevice , vedere gli argomenti seguenti:

Requisiti

Requisito Value
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione mmdeviceapi.h

Vedere anche

Interfaccia IMMDevice

IMMDevice::GetId

Interfaccia IMMDeviceEnumerator

Interfaccia IMMNotificationClient