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) |