KS 屬性

屬性代表屬於核心資料流程物件的功能或控制狀態設定,例如篩選或釘選。 核心串流迷你驅動程式的用戶端可以將 get 和 set 屬性要求 (KSPROPERTY_TYPE_GET,並 KSPROPERTY_TYPE_SET) 傳送給迷你驅動程式已具現化的篩選器和 pin。 相關屬性的群組稱為 屬性集

若要取得或設定個別屬性,使用者模式用戶端會呼叫 Win32 函式 DeviceIoControl ,並將 dwIoControlCode 參數設定為 IOCTL_KS_PROPERTY。 DeviceIoControl會在 Microsoft Windows SDK 檔中說明。 核心模式用戶端應該呼叫 KsSynchronousDeviceControl

輸入緩衝區可能是 KSPROPERTY 結構或包含 KSPROPERTY 結構的包裝函式,以及與要求相關的其他資訊。 為了回應此呼叫,作業系統會將 IRP 分派至類別驅動程式。

當類別驅動程式收到所產生的 IRP 時,它會呼叫 KsPropertyHandler。 類別驅動程式會以呼叫參數的形式包含 KSPROPERTY 結構的位址,以識別屬性要求的細節。 屬性要求可以在類別驅動程式層級或由迷你驅動程式提供的處理常式自動處理。 請參閱 核心串流屬性集 以取得參考資訊,包括類別驅動程式處理的屬性集,以及需要迷你驅動程式提供的處理常式。 迷你驅動程式可以覆寫或增強類別驅動程式處理常式,方法是針對預設由類別驅動程式處理的屬性提供回呼。

如果迷你驅動程式已提供此屬性的處理常式, 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 結構。