ACX 버전 정보

이 항목에서는 ACX 및 KMDF 버전 정보를 설명합니다. ACX에 대한 일반적인 개요는 ACX 오디오 클래스 확장 개요를 참조하세요.

참고 항목

ACX 헤더 및 라이브러리는 WDK 10.0.22621.2428(2023년 10월 24일 릴리스)에 포함되지 않지만 이전 버전과 WDK의 최신(25000 시리즈 빌드) Insider Preview에서 사용할 수 있습니다. WDK의 미리 보기 버전에 대한 자세한 내용은 WDK (Windows 드라이버 키트)의 미리 보기 버전 설치를 참조하세요.

ACX 및 KMDF 버전

!wdfkd.wdfldr 확장을 사용하여 ACX에 대한 버전 정보를 봅니다. !wdfkd.wdfldr 확장은 현재 Windows 드라이버 프레임워크에 동적으로 바인딩된 드라이버에 대한 정보를 표시합니다.

!wdfkd.wdfldr Acx01000.sys

버전 1.1

현재 버전의 ACX는 1.1 이며 모든 새 드라이버 개발에 권장됩니다.

ACX 버전에 대한 Windows OS 지원은 다음 표에 설명되어 있습니다.

운영 체제 KMDF 버전 지원되는 ACX 버전 버전 참고 사항
Windows 10, 버전 2004 최소 1.31 1.1 초기 공개 릴리스입니다.

이러한 DDI는 버전 1.1에 추가되었습니다.

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

시험판 1.0 버전

버전 1.0은 새 드라이버 개발에 권장되지 않지만 ACX 드라이버의 초기 개발 및 테스트에 사용되었습니다.

운영 체제 KMDF 버전 지원되는 ACX 버전 버전 참고 사항
Windows 10, 버전 1903 1.29 1.0 시험판.

KMDF 버전 정보

ACX 개체는 WDF(Windows 드라이버 프레임워크) 개체인 WDFOBJECT입니다. WDF에 대한 자세한 내용은 프레임워크 개체 소개를 참조 하세요. ACX는 런타임에 특정 버전의 KMDF에 바인딩됩니다. 자세한 내용은 KMDF 버전 기록을 참조 하세요.

다른 버전의 WDF/KMDF를 설치하는 방법에 대한 자세한 내용은 다음 항목을 참조하세요.

ACX는 런타임에 특정 버전의 KMDF에 바인딩됩니다. Windows에서 커널 모드 WDF 드라이버를 로드하면 드라이버가 동적으로 KMDF 런타임 라이브러리(WdfMM000.sys)에 바인딩됩니다. 여러 드라이버가 동일한 DLL(런타임 라이브러리) 이미지를 공유할 수 있으며, 두 주 버전에 대한 런타임 라이브러리는 나란히 공존할 수 있습니다. KMDF 버전 관리에 대한 자세한 내용은 프레임워크 라이브러리 버전 관리를 참조 하세요.

여러 ACX 버전 지원

오디오 드라이버를 빌드할 때 컴파일 시간에 사용하려는 ACX 프레임워크의 최대 및 최소 버전을 지정합니다. 따라서 런타임에 오디오 드라이버는 DDI의 최대/최소 버전을 사용할 수 있다고 가정할 수 있으며, 그렇지 않으면 오디오 드라이버가 로드되지 않습니다.

ACX 드라이버는 여러 버전의 ACX에서 실행되도록 작성할 수 있으며 특정 ACX DDI, 구조체 등이 해당 버전에 있거나 없는 경우 런타임에 호출합니다. ACX_IS_FUNCTION_AVAILABLE(FunctionName) 를 사용하여 특정 버전의 ACX에서 사용할 수 있는 특정 함수를 확인할 수 있습니다. 자세한 내용은 ACX_IS_FUNCTION_AVAILABLE 매크로를 참조 하세요.

다음 코드는 함수를 사용할 수 있는지 검사 방법에 대한 예제를 제공합니다.

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

이러한 유사한 함수도 사용할 수 있습니다.

ACX_IS_STRUCTURE_AVAILABLE 매크로설명된 ACX_IS_STRUCTURE_AVAILABLE(StructName)입니다.

ACX_IS_FIELD_AVAILABLE 매크로설명된 ACX_IS_FIELD_AVAILABLE(StructName, FieldName)입니다.

ACX는 다음 코드 샘플과 같이 오디오 드라이버의 버전 정보를 검사 데 사용할 수 있는 ACX_DRIVER_VERSION_AVAILABLE_PARAMS_INIT 함수도 지원합니다.

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

참고 항목

ACX_IS_FUNCTION_AVAILABLE 매크로

ACX 오디오 클래스 확장 개요

ACX 참조 설명서