共用方式為


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