GetDevice 方法检索由终结点 ID 字符串标识的音频终结点设备。
Syntax
HRESULT GetDevice(
[in] LPCWSTR pwstrId,
[out] IMMDevice **ppDevice
);
Parameters
[in] pwstrId
指向包含终结点 ID 的字符串的指针。 调用方通常从 IMMDevice::GetId 方法或 IMMNotificationClient 接口中的某个方法获取此字符串。
从 Windows 11版本 24H2(内部版本 26100)开始,调用方还可以传入从音频终结点上的 PKEY_AudioEndpoint_StableId 属性获取的字符串,以检索具有匹配 StableId 的音频终结点。
[out] ppDevice
指向指针变量的指针变量,该方法将指定设备的 IMMDevice 接口的地址写入其中。 通过此方法,调用方获取对接口的计数引用。 调用方负责通过调用接口的 Release 方法,在不再需要接口时释放接口。 如果 GetDevice 调用失败, *ppDevice 为 NULL。
返回值
如果此方法成功,则返回 S_OK。 如果失败,则可能的返回代码包括但不限于下表中显示的值。
| 返回代码 | Description |
|---|---|
|
参数 pwstrId 或 ppDevice 为 NULL。 |
|
设备 ID 不标识此系统中的音频设备。 |
|
内存不足。 |
注解
如果两个程序在两个不同的进程中运行,并且两者都需要访问相同的音频终结点设备,则一个程序不能简单地将设备的 IMMDevice 接口传递给另一个程序。 但是,程序可以按照以下步骤访问同一设备:
- 第一个程序在第一个进程中调用 IMMDevice::GetId 方法,以获取标识设备的终结点 ID 字符串。
- 第一个程序将终结点 ID 字符串跨进程边界传递到第二个程序。
- 若要在第二个进程中获取对设备的 IMMDevice 接口的引用,第二个程序使用终结点 ID 字符串调用 GetDevice 。
Requirements
| Requirement | 价值 |
|---|---|
| 最低支持的客户端 | Windows Vista [仅限桌面应用] |
| 支持的最低服务器 | Windows Server 2008 [仅限桌面应用] |
| 目标平台 | Windows操作系统 |
| 标头 | mmdeviceapi.h |