屬性表示屬於核心串流對象的功能或控制狀態設定,例如濾波器或接腳。 核心流式迷你驅動程式的用戶端可以將取得和設定屬性要求(KSPROPERTY_TYPE_GET 和 KSPROPERTY_TYPE_SET)傳送至迷你驅動程式已實例化的過濾器和引腳。 一組相關內容稱為 內容集。
若要取得或設定個別屬性,使用者模式用戶端會呼叫 Win32 函式 DeviceIoControl ,並將 dwIoControlCode 參數設定為 IOCTL_KS_PROPERTY。 DeviceIoControl 在 Microsoft Windows SDK 檔中說明。 核心模式用戶端應該呼叫 KsSynchronousDeviceControl。
輸入緩衝區是 KSPROPERTY 結構或包裝函式,其中包含 KSPROPERTY 結構和其他與要求相關的資訊。 為了回應此呼叫,作業系統會將 IRP 分派至類別驅動程式。
當類別驅動程式收到產生的 IRP 時,它會呼叫 KsPropertyHandler。 類別驅動程式會包含 KSPROPERTY 結構的位址作為呼叫參數,以識別屬性要求的詳細資料。 屬性要求會在類別驅動程式層級自動處理,或由微型驅動程式提供的處理常式進行處理。 如需參考資訊,包括哪些屬性集由類別驅動程式處理,哪些需要迷你驅動程式提供的處理常式,請參閱 Kernel Streaming 屬性集。 迷你驅動程式可以透過提供回呼函式來覆蓋或增強類別驅動程式對屬性的預設處理,該屬性通常由類別驅動程式處理。
如果迷你驅動程式已提供此屬性的處理常式, KsPropertyHandler 會接著將要求移交給適當的迷你驅動程式提供的回呼。
迷你驅動程式在類型為 KSPROPERTY_ITEM 的結構中提供至其屬性支援回呼的指標。 迷你驅動程式會在 KSPROPERTY_SET 結構中將相關KSPROPERTY_ITEM結構陣列分組。 不同的類別驅動程式模型稍微有不同的方法,讓迷你驅動程式將屬性集資料提供給類別驅動程式。 您可以遵循 核心串流中的連結來尋找類別驅動程式特定的資訊。
迷你驅動程式還會在KSPROPERTY_ITEM結構中提供指向KSPROPERTY_VALUES結構的指標。 KSPROPERTY_VALUES結構又包含 KSPROPERTY_MEMBERSLIST 結構的陣列。 這是迷你驅動程式指定屬性可接受值的大小和類型的地方。 每個KSPROPERTY_MEMBERSLIST結構都包含標頭成員:如需如何指定迷你驅動程式支援之屬性合法範圍或值的相關資訊,請參閱 KSPROPERTY_MEMBERSHEADER 。 您也可以在 Microsoft Windows 驅動程式套件 (WDK) 的 Testcap 範例中找到此機制的實作。
若要報告屬性可接受值的大小和類型,類別驅動程式會傳回 KSPROPERTY_DESCRIPTION 結構,以回應用戶端的KSPROPERTY_TYPE_BASICSUPPORT要求。
類別驅動程式可能會將KSPROPERTY_MEMBERSHEADER結構清單附加至KSPROPERTY_DESCRIPTION結構。