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.
Minidriver AVStream, który nie obsługuje inicjowania urządzenia na własnych wywołaniach KsInitializeDriver z procedury DriverEntry minidriver. KsInitializeDriver inicjuje obiekt sterownika AVStream, oprócz przetwarzania IRP, komunikatów dotyczących dodawania urządzeń Plug and Play oraz zwalniania.
W wywołaniu metody KsInitializeDriver minidriver przekazuje wskaźnik do obiektu sterownika w celu zainicjowania wskaźnika do ścieżki rejestru i opcjonalnie obiektu deskryptora urządzenia. Należy pamiętać, że przekazywanie obiektu KSDEVICE_DESCRIPTOR nie jest wymagane. Jeśli minidriver przekazuje deskryptor urządzenia, AVStream tworzy urządzenie o określonych właściwościach w czasie AddDevice.
Obiekt deskryptora urządzenia zawiera wskaźnik do struktury KSDEVICE_DISPATCH , a także tablicę deskryptorów filtrów. Podaj KSFILTER_DESCRIPTOR dla każdego typu filtru obsługiwanego przez minidriver. Gdy minidriver wywołuje ksInitializeDriver, AVStream tworzy obiekt fabryki filtrów dla każdego typu filtru uwidocznionego przez minidriver. Poszczególne filtry są następnie tworzone przez fabrykę filtrów po otrzymaniu żądania utworzenia IRP dla powiązanego elementu tworzenia. Każdy deskryptor filtru zawiera wskaźnik do tablicy obiektów KSPIN_DESCRIPTOR_EX . AVStream tworzy fabrykę pinów w odpowiednim filtrze dla każdego typu pinu, który minidriver udostępnia przez ten filtr.
Po nawiązaniu połączenia z danym typem pina na filtrze, fabryka pinów AVStream tworzy obiekt pina. Należy pamiętać, że każdy filtr musi uwidocznić co najmniej jeden numer PIN. Minidriver używa członka InstancesNecessary struktury KSPIN_DESCRIPTOR_EX do ustalenia liczby instancji tego typu pinu, które są niezbędne do poprawnego działania filtra. Podobnie minidriver może narzucić maksymalną liczbę wyprowadzeń, które może utworzyć fabryka wyprowadzeń za pomocą elementu członkowskiego InstancesPossible tej struktury.
Usługa AVStream obsługuje dwa typy przetwarzania: przetwarzanie skoncentrowane na filtrze i przetwarzanie skoncentrowane na pinezkach. Podczas układania deskryptorów zdecyduj, który typ przetwarzania każdego typu filtru będzie wykonywane.
Instalowanie minidrivera AVStream
Minidriver AVStream musi mieć plik INF używany przez system do zainstalowania sterownika. Plik INF AVStream jest oparty na typowym formacie INF, który został opisany w temacie Tworzenie pliku INF. Możesz również odwołać się do plików INF dostarczanych z przykładowymi sterownikami AVStream w zestawie sterowników systemu Windows (WDK). Należy pamiętać o poniższych wytycznych specyficznych dla usługi AVStream.
Jeśli piszesz minidriver dla urządzenia nadrzędnego, sekcja AddReg pliku INF powinna zawierać następujące elementy:
[ParentName.AddReg]
HKR,"ENUM\[DeviceName]",pnpid,,"[string]"
Jeśli piszesz minidriver dla urządzenia podrzędnego, sekcja AddReg powinna zawierać:
[Manufacturer]
...=ChildName
[ChildName]
...=ChildName.Device,AVStream\[string]
Należy pamiętać, że "AVStream" będzie "Stream" dla sterownika klasy 'stream'.
W przypadku wszystkich minidriverów AVStream ciąg odniesienia specyficzny dla filtru w pliku INF musi być zgodny z członem ReferenceGuid struktury KSFILTER_DESCRIPTOR.
Aby uzyskać więcej informacji na temat deskryptorów, zobacz Deskryptory AVStream.