Udostępnij przez


Streaming Minidrivers

Uwaga Ta sekcja zawiera szczegółowe informacje o nieaktualnym sterowniku klasy Stream.sys. W wersji systemu Microsoft Windows XP firma Microsoft obsługuje Stream.sys tylko dla istniejących sterowników. W tej wersji firma Microsoft zaleca, aby dostawcy rozważyli opracowanie nowych sterowników multimedialnych wideo lub audio/wideo przy użyciu modelu sterownika klasy AVStream. ** Zobacz szczegóły w AVStream Overview. Jeśli tworzysz sterownik tylko do dźwięku, należy napisać sterownik miniportu audio w ramach dostarczonego przez firmę Microsoft sterownika klasy Portcls.sys . Aby uzyskać szczegółowe informacje, zobacz Audio Miniport Drivers (Sterowniki miniportu audio).

Dostawcy mogą obsługiwać urządzenia wideo lub audio/wideo, udostępniając minidriver działający na dostarczonym przez firmę Microsoft sterowniku klasy Stream.sys. W tej dokumentacji minidriverami dostarczonymi przez dostawcę w Stream.sys są nazywane minidriverami strumieniowymi.

Na przykład urządzenia do przechwytywania wideo i odtwarzacze DVD mogą być obsługiwane za pomocą minidriverów przesyłania strumieniowego. Aby uzyskać informacje specyficzne dla technologii, zobacz Video Capture Devices i DVD Decoder Minidrivers.

Minidrivery przesyłania strumieniowego obsługują semantykę strumieniowego przesyłania jądra. Aby użyć tego dokumentu, deweloperzy sterowników powinni zapoznać się z podstawowymi pojęciami dotyczącymi przesyłania strumieniowego jądra, jak wyjaśniono w artykule Przesyłanie strumieniowe jądra.

Sterownik klasy strumieniowej został zaprojektowany, aby ułatwić pisanie sterowników sprzętowych dla urządzeń strumieniowych poprzez obsługę wielu aspektów interakcji z systemem operacyjnym.

  • Minidriver może zezwolić sterownikowi klasy strumienia na obsługę synchronizacji w jego imieniu. Na przykład sterownik klasy strumienia może opcjonalnie serializować żądania we/wy dla minidrivera. Zezwolenie sterownikowi klasy na obsługę synchronizacji sprawia, że minidriver jest bezpieczny dla multiprocesorów, ale niereentrantny. Jest to odpowiednie dla sprzętu od niskiej do średniej klasy.

  • Sterownik klasy automatycznie synchronizuje operacje na plikach. Na przykład otwarcie strumienia i urządzenia są poprawnie serializowane bez użycia minidrivera przy użyciu muteksów, semaforów lub zdarzeń.

  • Sterownik klasy abstrahuje implementację semantyki przesyłania strumieniowego jądra z minidriver.

  • Sterownik klasy obsługuje całą interakcję z menedżerem PnP. Na przykład:

    • Sterownik klasy tworzy obiekt urządzenia funkcjonalnego w imieniu minidrivera.
    • Sterownik klasy zarządza konfiguracją zasobów (taką jak tłumaczenie adresów portów, tłumaczenie i mapowanie zakresów pamięci oraz łączenie przerwań).
    • Sterownik klasy obsługuje środowiska IRP PnP, takie jak IRP_MN_START_DEVICE lub IRP_MN_STOP_DEVICE.
  • Wszystkie zarządzanie buforem niskiego poziomu jest obsługiwane przez sterownik klasy:

    • Przydzielanie obiektu adaptera DMA, jeśli to konieczne.
    • Mapowanie buforów i tworzenie list scatter/gather dla DMA.
    • Prawidłowe blokowanie i opróżnianie buforów zarówno dla DMA, jak i PIO.
  • Wszystkie weryfikacje parametrów IOCTL są wykonywane przez sterownik klasy.

  • Wszystkie żądania są mierzone czasowo przez sterownik klasy, który korzysta z watchdogowego czasomierza.

  • Minidriver nie tworzy obiektu urządzenia, ale udostępnia obiekt urządzenia sterownika klasy w razie potrzeby. Pozwala to zaoszczędzić zasoby systemowe.

  • Dla jednego adaptera tworzony jest tylko jeden obiekt urządzenia. Wiele urządzeń podrzędnych (nazywanych strumieniami) obsługiwanych przez kartę jest reprezentowanych przez wyprowadzenia przesyłania strumieniowego jądra.