共用方式為


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