Udostępnij przez


Właściwości KS

Właściwość reprezentuje możliwość lub ustawienie stanu kontrolnego, które należy do obiektu przesyłania strumieniowego jądra, takiego jak filtr lub pin. Klienci minidrivera przesyłania strumieniowego jądra mogą wysyłać żądania dotyczące pobierania i ustawiania właściwości (KSPROPERTY_TYPE_GET i KSPROPERTY_TYPE_SET) do filtrów i pinów, które minidriver utworzył. Grupa powiązanych właściwości jest określana jako zestaw właściwości.

Aby uzyskać lub ustawić poszczególne właściwości, klienci trybu użytkownika wywołają funkcję Win32 DeviceIoControl z parametrem dwIoControlCode ustawionym na IOCTL_KS_PROPERTY. Element DeviceIoControl został opisany w dokumentacji zestawu Microsoft Windows SDK. Klienci trybu jądra powinni wywołać KsSynchronousDeviceControl.

Bufor wejściowy jest strukturą KSPROPERTY lub otoczką zawierającą strukturę KSPROPERTY oraz inne informacje istotne dla żądania. W odpowiedzi na to wywołanie system operacyjny wysyła protokół IRP do sterownika klasy.

Gdy sterownik klasy odbiera wynikowy protokół IRP, wywołuje metodę KsPropertyHandler. Sterownik klasy zawiera jako parametr wywołania adres struktury KSPROPERTY, która identyfikuje szczegóły żądania właściwości. Żądanie właściwości jest obsługiwane automatycznie na poziomie sterownika klasy lub przez procedurę obsługi dostarczoną przez minidriver. Zobacz Zestawy właściwości przesyłania strumieniowego jądra, aby uzyskać informacje referencyjne, w tym, które zestawy właściwości są obsługiwane przez sterownik klasy i które wymagają procedur obsługi dostarczanych przez minidriver. Minidriver może zastąpić lub rozszerzyć program obsługi sterowników klasy, zapewniając wywołania zwrotne dla właściwości, która jest domyślnie obsługiwana przez sterownik klasy.

Jeśli minidriver dostarczył programy obsługi dla tej właściwości, KsPropertyHandler przekazuje polecenie do odpowiedniego wywołania zwrotnego dostarczonego przez minidriver.

Minidriver zapewnia wskaźniki do jego właściwości obsługi wywołań zwrotnych w strukturze typu KSPROPERTY_ITEM. Minidriver grupuje tablicę powiązanych struktur KSPROPERTY_ITEM w strukturze KSPROPERTY_SET. Różne modele sterowników klasy mają nieco odmienne metody umożliwiające minidriverowi udostępnianie danych właściwości sterownikowi klasy. Informacje dotyczące konkretnego sterownika klasy można znaleźć, korzystając z linków w dziale Przesyłanie strumieniowe jądra.

Minidriver zapewnia również wskaźnik do struktury KSPROPERTY_VALUES w strukturze KSPROPERTY_ITEM. Struktura KSPROPERTY_VALUES z kolei zawiera tablicę struktur KSPROPERTY_MEMBERSLIST . W tym miejscu minidriver określa rozmiar i typ akceptowalnych wartości dla właściwości. Każda struktura KSPROPERTY_MEMBERSLIST zawiera element członkowski nagłówka, zobacz KSPROPERTY_MEMBERSHEADER, aby uzyskać informacje o tym, jak określić legalne zakresy lub wartości dla właściwości obsługiwanej przez minidriver. Implementację tego mechanizmu można również znaleźć w przykładzie Testcap w zestawie Microsoft Windows Driver Kit (WDK).

Aby zgłosić rozmiar i typ akceptowalnych wartości dla właściwości, sterownik klasy zwraca strukturę KSPROPERTY_DESCRIPTION w odpowiedzi na żądanie KSPROPERTY_TYPE_BASICSUPPORT od klienta.

Sterownik klasy może dołączyć listę struktur KSPROPERTY_MEMBERSHEADER do struktury KSPROPERTY_DESCRIPTION.