IDXCoreAdapterFactory::CreateAdapterList 方法

生成适配器对象的列表,这些对象表示系统的当前适配器状态,并满足指定的条件。 有关编程指南和代码示例,请参阅 使用 DXCore 枚举适配器

语法

virtual HRESULT STDMETHODCALLTYPE CreateAdapterList(
  uint32_t numAttributes,
  _In_reads_(numAttributes) const GUID *filterAttributes,
  REFIID riid,
  _COM_Outptr_ void **ppvAdapterList) = 0;

template<class T>
HRESULT STDMETHODCALLTYPE CreateAdapterList(
  uint32_t numAttributes,
  _In_reads_(numAttributes) const GUID *filterAttributes,
  _COM_Outptr_ T **ppvAdapterList);

参数

numAttributes

类型: uint32_t

filterAttributes 参数指向的数组中的元素数。

filterAttributes [in]

类型: const GUID*

指向适配器属性 GUID 数组的指针。 有关属性 GUID 的列表,请参阅 DXCore 适配器属性 GUID。 必须至少提供一个 GUID。 如果数组中提供了多个 GUID,则只有满足 所有 请求属性的适配器才会包含在返回的列表中。

riid

类型: REFIID

对要在 ppvAdapterList 中返回的接口 (GUID) 的引用。 这应是 IDXCoreAdapterList (IID) 的接口标识符。

ppvAdapterList [out]

类型: void**

指向具有 riid 参数中指定的 IID 的接口的指针的地址。 成功返回后, *ppvAdapterList (取消引用的地址) 包含指向创建的适配器列表的指针。

返回

类型: HRESULT

如果函数成功,则返回 S_OK。 否则,它将返回 HRESULT错误代码

返回值 说明
E_INVALIDARG nullptrfilterAttributes 提供,或为 numAttributes 提供 0。
E_NOINTERFACE riid 提供了无效值。
E_POINTER nullptrppvAdapterList 提供。

备注

即使找不到适配器,只要参数有效, CreateAdapterList 也会创建有效的 IDXCoreAdapterList 对象,并返回 S_OK。 生成后,此特定列表中的适配器不会更改。 但是,如果其中一个适配器稍后变为无效,或者新适配器到达且符合所提供的筛选条件,则该列表将被视为过时。 CreateAdapterList 返回的列表不是以任何特定方式排序的,但列表的排序在多个调用甚至操作系统重启之间都是一致的。 系统配置更改(包括添加或删除适配器或现有适配器上的驱动程序更新)时,顺序可能会更改。 可以使用通知类型 DXCoreNotificationType.AdapterListStaleIDXCoreAdapterFactory::RegisterEventNotification 注册这些更改。

另请参阅

IDXCoreAdapterFactoryDXCore 参考DXCore 适配器属性 GUID使用 DXCore 枚举适配器