Compartir a través de


Método IDXCoreAdapterFactory::CreateAdapterList

Genera una lista de objetos de adaptador que representan el estado actual del adaptador del sistema y cumple los criterios especificados. Para obtener instrucciones de programación y ejemplos de código, consulte Uso de DXCore para enumerar adaptadores.

Sintaxis

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);

Parámetros

numAttributes

Tipo: uint32_t

Número de elementos de la matriz a los que apunta el argumento filterAttributes .

filterAttributes [in]

Tipo: GUID const*

Puntero a una matriz de GUID de atributo de adaptador. Para obtener una lista de GUID de atributo, consulte GUID de atributo del adaptador dxcore. Se debe proporcionar al menos un GUID. En caso de que se proporcione más de un GUID en la matriz, solo los adaptadores que cumplan todos los atributos solicitados se incluirán en la lista devuelta.

riid

Tipo: REFIID

Referencia al identificador único global (GUID) de la interfaz que desea devolver en ppvAdapterList. Se espera que sea el identificador de interfaz (IID) de IDXCoreAdapterList.

ppvAdapterList [out]

Tipo: void**

Dirección de un puntero a una interfaz con el IID especificado en el parámetro riid . Tras la devolución correcta, *ppvAdapterList (la dirección desreferenciada) contiene un puntero a la lista de adaptadores creada.

Devoluciones

Tipo: HRESULT

Si la función se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de errorHRESULT.

Valor devuelto Descripción
E_INVALIDARG nullptr se proporcionó para filterAttributes o 0 para numAttributes.
E_NOINTERFACE Se proporcionó un valor no válido para riid.
E_POINTER nullptr se proporcionó para ppvAdapterList.

Comentarios

Incluso si no se encuentra ningún adaptador, siempre y cuando los argumentos sean válidos, CreateAdapterList crea un objeto IDXCoreAdapterList válido y devuelve S_OK. Una vez generados, los adaptadores de esta lista específica no cambiarán. Pero la lista se considerará obsoleta si uno de los adaptadores más adelante deja de ser válido, o si llega un nuevo adaptador que cumple los criterios de filtro proporcionados. La lista devuelta por CreateAdapterList no se ordena de ninguna manera determinada, pero la ordenación de una lista es coherente en varias llamadas e incluso en los reinicios del sistema operativo. La ordenación puede cambiar en los cambios de configuración del sistema, incluida la adición o eliminación de un adaptador, o una actualización del controlador en un adaptador existente. Puede registrarse para estos cambios con IDXCoreAdapterFactory::RegisterEventNotification mediante el tipo de notificación DXCoreNotificationType.AdapterListStale.

Consulte también

IDXCoreAdapterFactory, DXCore Reference, DXCore adapter ATTRIBUTE GUIDs, Using DXCore to enumerate adapters