PFNKSALLOCATOR 回呼函式 (ks.h)
Minidrivers 可以選擇性地提供 類型為 PFNKSALLOCATOR 的回調函式,做為呼叫 KsEnableEventWithAllocator、 KsPropertyHandlerWithAllocator 和 KsMethodHandlerWithAllocator 的參數。
語法
PFNKSALLOCATOR Pfnksallocator;
NTSTATUS Pfnksallocator(
[in] PIRP Irp,
[in] ULONG BufferSize,
[in] BOOLEAN InputOperation
)
{...}
參數
[in] Irp
指定要進行緩衝區配置要求的 IRP。
[in] BufferSize
指定所需的緩衝區大小。 此大小涵蓋要求中的所有參數。
[in] InputOperation
如果這是輸入作業,則設定為 TRUE ,這表示成功傳回時,Irp-IoStatus.Information> 字段會包含要複製回原始輸入緩衝區的位元組數目。
傳回值
如果處理要求,則傳回STATUS_SUCCESS。 否則會傳回適當的錯誤碼。
備註
一般而言,集區內存會用於緩衝區配置。 這可讓篩選條件直接將事件、屬性和方法查詢傳遞至硬體,以避免額外的數據複製,方法是允許它們提供標準處理函式放置這類數據的緩衝區。 因此,篩選條件可能會有記憶體區塊,這些區塊已經對應至可能發生緩衝區配置的配接器。
由於此記憶體可能不是一般集區配置的記憶體,因此篩選條件必須在 Irp 完成時執行緩衝區清除。 這表示對於非同步使用者模式的輸入作業,配置器必須為目的地緩衝區配置 MDL、探查和鎖定它,以及擷取系統位址。 這必須完成,才能將傳回數據複製到原始緩衝區。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | ks.h (包含 Ks.h) |