ACX-Versionsinformationen
In diesem Thema werden ACX- und KMDF-Versionsinformationen erläutert. Eine allgemeine Übersicht über ACX finden Sie in der Übersicht über ACX-Audioklassenerweiterungen.
ACX- und KMDF-Versionen
Verwenden Sie die Erweiterung !wdfkd.wdfldr, um Versionsinformationen für ACX anzuzeigen. Die Erweiterung !wdfkd.wdfldr zeigt Informationen über die Treiber an, die derzeit dynamisch an die Windows Driver Frameworks gebunden sind.
!wdfkd.wdfldr Acx01000.sys
Version 1.1
Die aktuelle Version von ACX ist 1.1 und wird für die Entwicklung aller neuen Treiber empfohlen.
Die Unterstützung des Windows-Betriebssystems für ACX-Versionen wird in der folgenden Tabelle beschrieben.
Betriebssystem | KMDF-Version | Unterstützte ACX-Version | Versionshinweise |
---|---|---|---|
Windows 10, Version 2004 | Mindestens 1.31 | 1.1 | Erste öffentliche Veröffentlichung. |
Diese DDIs wurden in Version 1.1 hinzugefügt.
- AcxCircuitGetElementsCount
- AcxCircuitGetPinsCount
- AcxCircuitGetSymbolicLinkName
- AcxCircuitGetNotificationId
- AcxFactoryCircuitGetSymbolicLinkName
- AcxDataFormatListRemoveDataFormats
- AcxPinRemoveModeDataFormatList
- AcxStreamGetElementsCount
- AcxStreamGetNotificationId
- AcxTargetCircuitGetSymbolicLinkName
- AcxTargetPinFlushModeDataFormatListCache
Vorabversion 1.0
Version 1.0 wird nicht für die Entwicklung neuer Treiber empfohlen, wurde aber bei der frühen Entwicklung und dem Testen von ACX-Treibern verwendet.
Betriebssystem | KMDF-Version | Unterstützte ACX-Version | Versionshinweise |
---|---|---|---|
Windows 10, Version 1903 | 1.29 | 1.0 | Vorabrelease. |
KMDF-Versionsinformationen
ACX-Objekte sind Windows Driver Framework-Objekte (WDF) – WDFOBJECT. Weitere Informationen zu WDF finden Sie in Einführung in Framework-Objekte. ACX bindet zur Laufzeit an eine bestimmte Version von KMDF. Weitere Informationen finden Sie unter KMDF-Versionsverlauf.
Informationen zum Installieren verschiedener Versionen von WDF/KMDF finden Sie in den folgenden Themen:
ACX bindet zur Laufzeit an eine bestimmte Version von KMDF. Wenn Windows einen Kernelmodus-WDF-Treiber lädt, wird der Treiber dynamisch an die KMDF-Laufzeitbibliothek (WdfMM000.sys) gebunden. Mehrere Treiber können das gleiche Laufzeitbibliotheksimage (DLL) gemeinsam nutzen, und die Laufzeitbibliotheken für zwei Hauptversionen können nebeneinander existieren. Informationen zur KMDF-Versionsverwaltung finden Sie unter Framework Library Versioning.
Unterstützung mehrerer ACX-Versionen
Bei der Erstellung des Audiotreibers geben Sie die maximale und minimale Version des ACX-Frameworks an, die Sie zum Zeitpunkt der Kompilierung verwenden möchten. Daher kann der Audiotreiber zur Laufzeit davon ausgehen, dass die maximale/minimale Version von DDI verfügbar ist, andernfalls kann der Audiotreiber nicht geladen werden.
ACX-Treiber können für die Ausführung in mehreren Versionen von ACX geschrieben werden und zur Laufzeit den Aufruf vornehmen, wenn eine bestimmte ACX DDI, Struktur usw. in dieser Version vorhanden ist oder nicht. ACX_IS_FUNCTION_AVAILABLE(FunctionName) kann verwendet werden, um festzustellen, ob eine bestimmte Funktion in einer bestimmten Version von ACX verfügbar ist. Weitere Informationen finden Sie unter ACX_IS_FUNCTION_AVAILABLE-Makro.
Der folgende Code enthält ein Beispiel zum Überprüfen, ob eine Funktion verfügbar ist.
if (ACX_IS_FUNCTION_AVAILABLE( AcxTargetPinFlushModeDataFormatListCache)) {
DbgPrint("Available: AcxTargetPinFlushModeDataFormatListCache\n");
}
else
{
DbgPrint("Not available: AcxTargetPinFlushModeDataFormatListCache\n");
ASSERT(FALSE);
}
Es sind auch diese ähnlichen Funktionen verfügbar.
ACX_IS_STRUCTURE_AVAILABLE(StructName) beschrieben in ACX_IS_STRUCTURE_AVAILABLE-Makro.
ACX_IS_FIELD_AVAILABLE(StructName, FieldName) beschrieben in ACX_IS_FIELD_AVAILABLE-Makro.
ACX unterstützt auch die ACX_DRIVER_VERSION_AVAILABLE_PARAMS_INIT-Funktion, die verwendet werden kann, um Versionsinformationen des Audiotreibers zu überprüfen, wie im folgenden Codebeispiel gezeigt.
ACX_DRIVER_VERSION_AVAILABLE_PARAMS_INIT(&ver, 1, 1);
if (!AcxDriverIsVersionAvailable(driver, &ver))
{
ASSERT(FALSE);
goto exit;
}
Weitere Informationen
ACX_IS_FUNCTION_AVAILABLE-Makro