KS 屬性

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

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

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

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

如果 minidriver 已提供這個屬性的處理常式, KsPropertyHandler 會關閉要求給適當的 minidriver 提供的回呼。

minidriver 提供其屬性的指標,以支援類型 KSPROPERTY_ITEM結構中的回呼。 minidriver 會將 KSPROPERTY_SET 結構中相關KSPROPERTY_ITEM結構的陣列分組。 不同的類別驅動程式模型對於 minidriver 有不同的方法,讓屬性集資料可供類別驅動程式使用。 您可以依照 核心串流中的連結來尋找類別驅動程式特定資訊。

minidriver 也會提供KSPROPERTY_ITEM結構中 KSPROPERTY_VALUES 結構的指標。 KSPROPERTY_VALUES 結構又包含 KSPROPERTY_MEMBERSLIST 結構的陣列。 這是 minidriver 指定屬性可接受的值大小和類型的位置。 每個KSPROPERTY_MEMBERSLIST結構都包含標頭成員:請參閱 KSPROPERTY_MEMBERSHEADER 如需如何指定 minidriver 支援之屬性的法律範圍或值的相關資訊。 您也可以在 Microsoft Windows Driver Kit (WDK) 的 Testcap 範例中找到此機制的實作。

若要報告屬性的大小和可接受的數值型別,類別驅動程式會傳回 KSPROPERTY_DESCRIPTION 結構,以回應用戶端的KSPROPERTY_TYPE_BASICSUPPORT要求。

類別驅動程式可能會將KSPROPERTY_MEMBERSHEADER結構清單附加至KSPROPERTY_DESCRIPTION結構。