KsAllocateExtraData 函式 (ks.h)
KsAllocateExtraData 函式會與串流 IRP 搭配使用,以配置緩衝區以包含其他標頭數據。 傳回配置緩衝區的指標,而且呼叫端最終必須釋放緩衝區。
語法
KSDDKAPI NTSTATUS KsAllocateExtraData(
[in, out] PIRP Irp,
[in] ULONG ExtraSize,
[out] PVOID *ExtraBuffer
);
參數
[in, out] Irp
指定包含數據流標頭的 IRP。 IRP 之前必須傳遞至 KsProbeStreamIrp 以緩衝標頭。
[in] ExtraSize
指定要在每個數據流標頭之間配置之額外記憶體的大小,以位元組為單位。 此值 必須在 八位元組界限上對齊。 標頭的復本會放在傳回的緩衝區中,並在每個標頭之間插入額外的數據大小。 呼叫端必須釋放此專案。
[out] ExtraBuffer
指向呼叫端配置的指標,在成功完成時,會指向系統配置的緩衝區,其中包含數據流標頭,以及它們之間的要求填補。 呼叫端必須釋放此專案。
傳回值
KsAllocateExtraData 函式會在成功時傳回STATUS_SUCCESS,或傳回資源或存取錯誤。
備註
當 KsAllocateExtraData 順利完成時,會傳回記憶體區塊的指標,其中包含 IRP 的數據流數據標頭、 在 Irp 指定,以及在 ExtraSize 中指定的每個標頭之間填補。 這類結果緩衝區的范例如下所示:
不再需要額外的緩衝區時,應該使用 ExFreePool 釋放記憶體。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | ks.h (包含 Ks.h) |
程式庫 | Ks.lib |
IRQL | < DISPATCH_LEVEL |