ksPropertyHandler 函式 (ks.h)
驅動程式會呼叫 KsPropertyHandler 函式來處理 IRP。
語法
KSDDKAPI NTSTATUS KsPropertyHandler(
[in] PIRP Irp,
[in] ULONG PropertySetsCount,
[in] const KSPROPERTY_SET *PropertySet
);
參數
[in] Irp
指定處理屬性要求的 IRP。
[in] PropertySetsCount
指定要傳遞的屬性集數目。
[in] PropertySet
指向 KSPROPERTY_SET 結構的陣列。 驅動程式應該為每個設定它想要 KsPropertyHandler 處理的屬性提供一個結構。
傳回值
如果成功, KsPropertyHandler 函式會傳回STATUS_SUCCESS,或失敗時所處理之屬性的特定錯誤。 函式會設定 IRP-IO_STATUS_BLOCK>。信息成員,可能是因為內部錯誤而將它設定為零,或透過屬性處理程式設定它。 函式不會設定 lrp-IoStatus.Status> 成員,也不會完成 IRP。
備註
KsPropertyHandler 會回應集合所定義的所有屬性標識碼,而且只能在PASSIVE_LEVEL呼叫。
每個 KSPROPERTY_SET 專案都包含其 PropertyItem 成員中 KSPROPERTY_ITEM 結構的數位指標。 針對驅動程式特定的處理,KsPropertyHandler 會將每個要求交給 PropertyItem 內的其中一個驅動程式提供的回呼。 KsPropertyHandler 會負責處理所需的任何 IRP 處理。
KsPropertyHandler 不會使用其 KSPROPERTY_SET 結構的FastIoTable成員。 如果驅動程式需要支援要求的快速 I/O 處理,應該將相同的KSPROPERTY_SET結構傳遞至 KsFastPropertyHandler 例程。
屬性集的擁有者可以執行屬性處理的預先篩選或後置篩選。 基本屬性結構存取例外狀況是由 KsPropertyHandler 函式處理,不過屬性處理程式必須涵蓋特定例外狀況的清除。
KsPropertyHandler 會將相關KSPROPERTY_SET結構的指標放在 IRP-Tail.Overlay.DriverContext> 參數的 IRP 中。 minidriver 可以使用 ks.h 中定義的 KSPROPERTY_SET_IRP_STORAGE 宏來存取此指標。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | ks.h (包含 Ks.h) |
程式庫 | Ks.lib |