KsPropertyHandlerWithAllocator 函式 (ks.h)
KsPropertyHandlerWithAllocator 會執行與 KsPropertyHandler相同的處理,但允許選擇性配置器回呼用來提供參數的緩衝區。 如果使用,篩選條件可能需要以某種非常規方式釋放緩衝區。 使用自定義配置器時,不會設定IRP_BUFFERED_IO和IRP_DEALLOCATE_BUFFER旗標。
語法
KSDDKAPI NTSTATUS KsPropertyHandlerWithAllocator(
[in] PIRP Irp,
[in] ULONG PropertySetsCount,
[in] const KSPROPERTY_SET *PropertySet,
[in, optional] PFNKSALLOCATOR Allocator,
[in, optional] ULONG PropertyItemSize
);
參數
[in] Irp
指定處理屬性要求的 IRP。
[in] PropertySetsCount
指定要傳遞的屬性集數目。
[in] PropertySet
指定屬性集資訊的陣列指標。
[in, optional] Allocator
選擇性地指向用來配置記憶體以儲存屬性參數的配置函式。
[in, optional] PropertyItemSize
選擇性地包含屬性中每個KSPROPERTY_ITEM結構的大小。 屬性專案可以擴充,以便儲存私用資訊。 如果此參數為零,則會假設結構大小為一般。 如果大於或等於屬性項目結構,KSPROPERTY_ITEM_IRP_STORAGE巨集可用來傳回屬性專案的指標,以便擷取自定義數據。 在 64 位平臺上,此參數必須是 8 的倍數。
傳回值
如果成功,KsPropertyHandler 函式會傳回STATUS_SUCCESS,如果失敗,則傳回所處理之屬性特有的錯誤。 函式會透過將 Irp->IoStatus.Information 成員設定為零,或透過屬性處理程式設定它。 函式不會設定 lrp->IoStatus.Status 成員,也不會完成 IRP。
在 64 位平臺上,如果 PropertyItemSize 參數不是 8 的倍數,則會傳回STATUS_INVALID_PARAMETER,而且呼叫失敗。
言論
KsPropertyHandlerWithAllocator 會將指標放在 IRP 中 Irp->Tail.Overlay.DriverContext 參數中相關的KSPROPERTY_ITEM結構。 minidriver 可以使用 ks.h中定義的 KSPROPERTY_ITEM_IRP_STORAGE 巨集來存取此指標。
要求
要求 | 價值 |
---|---|
目標平臺 | 普遍 |
標頭 | ks.h (包括 Ks.h) |