Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Artykuł ten zawiera podsumowanie celów Audio Class eXtensions (ACX) i synchronizacji sterowników.
Aby uzyskać ogólne informacje na temat acX, zobacz AcX audio class extensions overview and Summary of ACX Objects ( Omówienie rozszerzeń klasy audio ACX ) i Summary of ACX Objects (Podsumowanie obiektów ACX). Aby uzyskać informacje o pakietach żądań IRPs, zobacz ACX IO request packet IRPs.
Elementy docelowe ACX
AcX używa WdfIoTarget do ułatwienia komunikacji między obiektami ACX, obwodami, wyprowadzeniami, strumieniami, elementami i fabrykami obwodów. WdfIoTarget to istniejąca abstrakcja WDF, która ułatwia komunikację między dwoma różnymi stosami.
Sterowniki używają acxTargetCircuit do komunikowania się z obwodem zdalnym uwidacznianym przez inny stos. AcxTargetCircuit jest implementowany przy użyciu WdfIoTarget.
Sterowniki używają AcxTargetPin do komunikacji z pinem obwodu zdalnego udostępnianym przez inny stos. AcxTargetPin jest implementowany przy użyciu WdfIoTarget do wysyłania komunikatów do jednostki zdalnego numeru PIN.
Sterowniki używają AcxTargetStream do komunikowania się ze strumieniem obwodu zdalnego uwidacznianym przez inny stos. AcxTargetStream jest implementowany przy użyciu WdfIoTarget w celu utworzenia strumienia zdalnego i zmiany stanu strumienia zdalnego.
Sterowniki używają AcxTargetElement do komunikowania się ze zdalnym elementem obwodu eksponowanym przez inny stos. Element AcxTargetElement jest implementowany przy użyciu elementu WdfIoTarget do wysyłania komunikatów do jednostki elementu zdalnego.
Sterowniki używają AcxTargetFactoryCircuit do komunikacji z instancją zdalnej fabryki obwodów. AcxTargetFactoryCircuit jest implementowany przy użyciu usługi WdfTarget do wysyłania komunikatów do zdalnej fabryki obwodów.
Aby wchodzić w interakcje z obwodem zdalnym, każdy z wymienionych powyżej typów ACX obsługuje:
- właściwości
- metody
- wydarzenia
Wszystkie te typy są oparte na typach obiektów WdfIoTarget .
Na tym diagramie przedstawiono architekturę docelową ACX i dziedziczenie z obiektów sterowników i urządzeń WDF.
Synchronizacja i serializacja sterowników ACX
Termin synchronizacji jest terminem ogólnym i służy do odwołowania się do operacji wymaganych do udostępniania zasobów (pamięci, operacji we/wy itp.) między wieloma współbieżnych klientów.
Termin serializacji służy do odwoływania się do jednego typu synchronizacji dla jednego typu obiektu (żądania we/wy, wywołania zwrotne itp.).
Sterowniki ACX to sterowniki WDF, co oznacza, że synchronizacja sterowników ACX jest oparta na możliwościach synchronizacji WDF:
- Użycie liczników odwołań i modelu obiektów hierarchicznych.
- Konfigurowalne przez sterownik sterowanie przepływem dla kolejek we/wy.
- Blokada prezentacji danych dla obiektów urządzeń i kolejek wejścia/wyjścia.
- Automatyczna serializacja wywołań zwrotnych Plug and Play i zasilania.
Aby uzyskać szczegółowy opis synchronizacji i serializacji, zobacz Using Automatic Synchronization (Korzystanie z synchronizacji automatycznej). Aby uzyskać bardziej kompletne wyjaśnienie, zapoznaj się z książką Developing Drivers with Windows Driver Foundation wydawnictwa Microsoft Press.
Usługa WDF obsługuje następujące zakresy synchronizacji:
- Brak zakresu (wartość domyślna w KMDF).
- Zakres urządzenia, WDF uzyskuje blokadę prezentacji obiektu urządzenia w celu serializacji operacji.
Domyślna kolejka ACX to pasywna, szeregowa kolejka bez blokowania. Sterownik musi ukończyć operację we/wy przed dostarczeniem kolejnego.
ACX nie obsługuje opcji zakresu kolejki. Dzięki tej opcji sterownik serializuje we/wy w określonej kolejce. Różne kolejki mogą mieć różne zakresy synchronizacji.
AcX nie obsługuje serializacji zakresu urządzeń. Domyślnie ACX serializuje żądania przy użyciu szeregowej kolejki I/O bez blokowania. Każdy obiekt obwodu i strumienia ma własną dedykowaną kolejkę. Aby uzyskać więcej informacji na temat operacji we/wy przesyłania strumieniowego, zapoznaj się z tematem ACX Streaming.
Jeśli sterownik przechowuje blokadę, nigdy nie powinien wywoływać kodu (jawnie lub niejawnie) poza jego kontrolą, dopóki blokada nie zostanie zwolniona.
W przypadku informacji historycznych oryginalne PortCls używają zakresu synchronizacji, takiego jak synchronizacja zakresu urządzeń WDF, gdzie wszystkie I/O dla podrzędnych urządzeń audio utworzonych na tym urządzeniu przechodzą przez tę samą blokadę serializacji. Ten typ serializacji był i nadal jest przyczyną różnych usterek. W nowszych wersjach systemu Windows 10 (wersja 1511 - TH2) PortCls został zaktualizowany w celu użycia innej blokady dla żądań I/O pozycji strumienia.
Zobacz także
Omówienie rozszerzeń klasy audio ACX
dokumentacja referencyjna ACX