Información de versión de ACX

En este tema se describe la información de la versión de ACX y KMDF. Para obtener información general sobre ACX, consulte Introducción a las extensiones de clase de audio ACX.

Versiones de ACX y KMDF

Use la extensión !wdfkd.wdfldr para ver la información de versión de ACX. La extensión !wdfkd.wdfldr muestra información sobre los controladores actualmente enlazados de forma dinámica a los marcos de trabajo de controladores de Windows.

!wdfkd.wdfldr Acx01000.sys

Versión 1.1

La versión actual de ACX es 1.1 y se recomienda para todo el desarrollo de controladores nuevos.

La compatibilidad del sistema operativo Windows con las versiones de ACX se describe en la tabla siguiente.

Sistema operativo Versión de KMDF Versión de ACX compatible Notas de la versión
Windows 10, versión 2004 Mínimo 1.31 1.1 Versión pública inicial.

Estas DDI se agregaron en la versión 1.1.

  • AcxCircuitGetElementsCount
  • AcxCircuitGetPinsCount
  • AcxCircuitGetSymbolicLinkName
  • AcxCircuitGetNotificationId
  • AcxFactoryCircuitGetSymbolicLinkName
  • AcxDataFormatListRemoveDataFormats
  • AcxPinRemoveModeDataFormatList
  • AcxStreamGetElementsCount
  • AcxStreamGetNotificationId
  • AcxTargetCircuitGetSymbolicLinkName
  • AcxTargetPinFlushModeDataFormatListCache

Versión preliminar 1.0

La versión 1.0 no se recomienda para el desarrollo de nuevos controladores, pero se usó en el desarrollo inicial y las pruebas de controladores ACX.

Sistema operativo Versión de KMDF Versión de ACX compatible Notas de la versión
Windows 10, versión 1903 1.29 1.0 Versión preliminar.

Información de versión de KMDF

Los objetos de ACX son objetos de Windows Driver Framework (WDF): WDFOBJECT. Para obtener más información sobre WDF, consulte Introducción a los objetos de estructura. ACX se enlaza a una versión específica de KMDF en tiempo de ejecución. Para obtener más información, consulte Historial de versiones de KMDF.

Para obtener información sobre cómo instalar diferentes versiones de WDF/KMDF, consulte los temas siguientes:

ACX se enlaza a una versión específica de KMDF en tiempo de ejecución. Cuando Windows carga un controlador WDF en modo kernel, el controlador se enlaza dinámicamente a la biblioteca en tiempo de ejecución de KMDF (WdfMM000.sys). Varios controladores pueden compartir la misma imagen de biblioteca en tiempo de ejecución (DLL) y las bibliotecas en tiempo de ejecución para dos versiones principales pueden coexistir en paralelo. Para obtener información sobre el control de versiones de KMDF, consulte Control de versiones de la biblioteca de marcos.

Compatibilidad con varias versiones de ACX

Al compilar el controlador de audio, especifique la versión máxima y mínima del marco ACX que desea usar en tiempo de compilación. Por lo tanto, el controlador de audio en tiempo de ejecución puede suponer que la versión máxima y mínima de la DDI está disponible, de lo contrario, el controlador de audio no se puede cargar.

Los controladores ACX pueden escribirse para ejecutarse en varias versiones de ACX y en tiempo de ejecución realizar la llamada si una DDI, estructura, etc. específica de ACX está presente o no en esa versión. ACX_IS_FUNCTION_AVAILABLE(FunctionName) se puede usar para ver si una función específica está disponible en una versión específica de ACX. Para obtener más información, consulte Macro ACX_IS_FUNCTION_AVAILABLE.

En el código siguiente se proporciona un ejemplo sobre cómo comprobar si hay una función disponible.

    if (ACX_IS_FUNCTION_AVAILABLE( AcxTargetPinFlushModeDataFormatListCache)) {
        DbgPrint("Available:  AcxTargetPinFlushModeDataFormatListCache\n");
    }
    else
    {
        DbgPrint("Not available:  AcxTargetPinFlushModeDataFormatListCache\n");
        ASSERT(FALSE);
    }

También están disponibles estas funciones similares.

ACX_IS_STRUCTURE_AVAILABLE(StructName) que se describe en la macro ACX_IS_STRUCTURE_AVAILABLE.

ACX_IS_FIELD_AVAILABLE(StructName, FieldName) que se describe en la macro ACX_IS_FIELD_AVAILABLE.

ACX también admite la función ACX_DRIVER_VERSION_AVAILABLE_PARAMS_INIT, que se puede usar para comprobar la información de versión del controlador de audio, como se muestra en el ejemplo de código siguiente.

    ACX_DRIVER_VERSION_AVAILABLE_PARAMS_INIT(&ver, 1, 1);
    if (!AcxDriverIsVersionAvailable(driver, &ver))
    {
        ASSERT(FALSE);
        goto exit;
    } 

Consulte también

Macro ACX_IS_FUNCTION_AVAILABLE

Información general sobre las extensiones de clase de audio de ACX

Documentación de referencia de la ACX