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指定的數據流數據標頭,以及 ExtraSize中所指定之每個標頭之間的填補。 這類結果緩衝區的范例如下所示:
不再需要額外的緩衝區時,應該使用 exFreePool 釋放記憶體。
要求
要求 | 價值 |
---|---|
目標平臺 | 普遍 |
標頭 | ks.h (包括 Ks.h) |
連結庫 | Ks.lib |
IRQL | < DISPATCH_LEVEL |