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

另請參閱

KsFastPropertyHandler

KsPropertyHandlerWithAllocator