共用方式為


FsRtlAllocateExtraCreateParameterList 函式 (ntifs.h)

FsRtlAllocateExtraCreateParameterList 例程會配置分頁集區內存給 ECP_LIST 結構,併產生該結構的指標。

語法

NTSTATUS FsRtlAllocateExtraCreateParameterList(
  [in]  FSRTL_ALLOCATE_ECPLIST_FLAGS Flags,
  [out] PECP_LIST                    *EcpList
);

參數

[in] Flags

定義集區配置選項。 如果FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA旗標與 Flags 參數搭配使用位 OR 作業,則 由 FsRtlAllocateExtraCreateParameterList 配置的任何集區都會針對目前進程的記憶體配額收費。

[out] EcpList

接收初始化之 ECP 清單結構的指標。 如果 FsRtlAllocateExtraCreateParameterList 無法配置足夠的集區,*EcpList 會是 NULL,FsRtlAllocateExtraCreateParameterList 會傳回狀態代碼STATUS_INSUFFICIENT_RESOURCES。

傳回值

FsRtlAllocateExtraCreateParameterList 可以傳回下列其中一個值:

傳回碼 描述
STATUS_INSUFFICIENT_RESOURCES FsRtlAllocateExtraCreateParameterList 無法配置足夠的記憶體給 ECP 列表結構。 在此情況下,*EcpList 為 NULL。
STATUS_SUCCESS 已成功配置和初始化 ECP_LIST 結構的記憶體。 在此情況下,會在 EcpList 參數中傳回初始化清單結構的指標。

言論

操作系統是否自動釋放 FsRtlAllocateExtraCreateParameterList 配置的記憶體取決於呼叫 FsRtlAllocateExtraCreateParameterList 時,如下列情況所示:

  • 呼叫端可以叫用 FsRtlAllocateExtraCreateParameterList 來配置ECP_LIST,並在呼叫端叫用 IoCreateFileEx 例程之前新增一或多個 ECP 內容結構。 在此情況下,操作系統不會釋放任何 ECP 內容結構。 因此,呼叫者可以使用相同的 ECP 集合,對 ioCreateFileEx 進行多個呼叫。 當呼叫端使用 ECP_LIST 完成時,呼叫端必須呼叫 FltFreeExtraCreateParameter 例程,以釋放ECP_LIST。

  • 當文件系統或文件系統篩選驅動程式處理 IRP_MJ_CREATE 要求時,文件系統或文件系統篩選驅動程式可以呼叫 FltInsertExtraCreateParameter 將 ECP 附加至現有的ECP_LIST。 如果ECP_LIST不存在,呼叫端必須呼叫 FsRtlAllocateExtraCreateParameterList 以建立ECP_LIST。 在此情況下,建立作業完成時,I/O 管理員會自動清除ECP_LIST和 ECP 內容結構。 這可讓文件系統或篩選驅動程式的ECP在重新分析點的處理中正確傳播。 此程式可能需要產生多個IRP_MJ_CREATE要求。

如果FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA旗標與 Flags 參數搭配使用,則會配置可分頁集區。 否則,會使用內部查閱清單來配置可分頁集區。

要求

要求 價值
最低支援的用戶端 Windows Vista
目標平臺 普遍
標頭 ntifs.h (include Ntifs.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

另請參閱

ECP_LIST

FltAllocateExtraCreateParameter

FltAllocateExtraCreateParameterFromLookasideList

FltCreateFileEx2

FltFreeExtraCreateParameter

FltFreeExtraCreateParameterList

FltGetEcpListFromCallbackData

FltInsertExtraCreateParameter

FltRemoveExtraCreateParameter

FltSetEcpListIntoCallbackData

IoCreateFileEx