FltAllocateExtraCreateParameterFromLo以sideList 函式 (fltkernel.h)

FltAllocateExtraCreateParameterFromLo以sidesideList 例程從指定的 lookaside 列表配置記憶體集區,以取得額外的建立參數 (ECP) 內容結構,併產生該結構的指標。

語法

NTSTATUS FLTAPI FltAllocateExtraCreateParameterFromLookasideList(
  [in]           PFLT_FILTER                                    Filter,
  [in]           LPCGUID                                        EcpType,
  [in]           ULONG                                          SizeOfContext,
  [in]           FSRTL_ALLOCATE_ECP_FLAGS                       Flags,
  [in, optional] PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK CleanupCallback,
  [in, out]      PVOID                                          LookasideList,
  [out]          PVOID                                          *EcpContext
);

參數

[in] Filter

迷你篩選驅動程式的不透明篩選指標。 只要載入迷你篩選驅動程式,這個指標就會唯一識別迷你篩選驅動程式,並維持不變。

[in] EcpType

GUID 的指標,表示 ECP 內容結構的型別。 如需詳細資訊 ,請參閱在驅動程式中使用 GUID

[in] SizeOfContext

ECP 內容結構的大小,以位元組為單位。

[in] Flags

定義集區配置選項。 如果 SizeOfContext 參數的值大於指定 lookaside 清單的大小,以位元組為單位,則會從系統集區配置 ECP 內容結構,而不是 lookaside 清單。 在此情況下,如果 Flags 參數包含FSRTL_ALLOCATE_ECP_FLAG_CHARGE_QUOTA位旗標值,則例程所配置的系統集區將會根據目前的進程記憶體配額收費。 如需詳細資訊,請參閱 FltAllocateExtraCreateParameterFlags 參數。 在從 lookaside 清單中配置 ECP 內容結構的記憶體時,例程不會使用FSRTL_ALLOCATE_ECP_FLAG_CHARGE_QUOTA位旗標。

[in, optional] CleanupCallback

類型 為 PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK 之迷你篩選定義的清除回呼例程的選擇性指標。 刪除 ECP 內容結構時,會呼叫清除回呼例程。 如果清除回呼例程不適用,請將此參數設定為 NULL

[in, out] LookasideList

初始化的 lookaside 列表指標,在其中嘗試從 ECP 內容結構 (配置集區) 。 若要初始化 lookaside 清單,請使用 FltInitExtraCreateParameterLo可sideList 例程。

[out] EcpContext

接收已配置 ECP 內容結構的指標。 如果例程無法為 ECP 內容結構配置足夠的集區, EcpContext 會是 NULL ,而且例程會傳回狀態代碼STATUS_INSUFFICIENT_RESOURCES。

傳回值

FltAllocateExtraCreateParameterFromLo可sideList 例程傳回下列其中一個值:

傳回碼 Description
STATUS_INSUFFICIENT_RESOURCES FltAllocateExtraCreateParameterFromLo以sideList 例程無法為 ECP 內容結構配置足夠的記憶體。 在此情況下, EcpContext 會是 NULL
STATUS_SUCCESS 已成功配置 ECP 內容結構。 在此情況下, EcpContext 參數會傳回配置結構的指標。

備註

從 Windows Vista 開始,即可使用此例程。

FltAllocateExtraCreateParameterFromLo一sideList 例程會從指定的初始化分頁或非分頁外觀清單配置 ECP 內容結構的記憶體集區。 不過,如果由 SizeOfContext) 參數所定義的 ECP 內容結構大小 (大於 lookaside 列表,則例程會類似地從分頁或非分頁系統集區配置記憶體。

使用 FltInitExtraCreateParameterLo在sideList 例程初始化分頁或非分頁集區 lookaside 列表。 使用 FltAllocateExtraCreateParameterFromLo連線sideList 例程從 lookaside 清單配置 ECP 內容結構,以及 FltFreeExtraCreateParameter 例程來解除分配 ECP 內容結構。

使用 FltDeleteExtraCreateParameterLo以sideList 例程釋放 lookaside 列表。

驅動程式必須釋放所有 ECP 內容結構和外觀清單,才能卸除。 不過,如果在處理IRP_MJ_CREATE要求時,文件系統或文件系統篩選驅動程式將ECP附加至現有或新建立的ECP_LIST,則IRP完成時會自動清除此ECP。 因此,篩選驅動程式不需要清除動態新增的ECP。 這可讓篩選驅動程式的ECP正確地傳播到重新分析點,也就是可能需要產生多個IRP_MJ_CREATE要求的程式。

如需搭配驅動程式使用 lookaside 清單的詳細資訊,請參閱使用 Lookaside 清單

規格需求

需求
目標平台 Universal
標頭 fltkernel.h (包含 Fltkernel.h)
程式庫 FltMgr.lib
IRQL <= APC_LEVEL

另請參閱

ECP_LIST

FltAllocateExtraCreateParameter

FltAllocateExtraCreateParameterList

FltCreateFileEx2

FltDeleteExtraCreateParameterLo在sideList

FltFreeExtraCreateParameter

FltFreeExtraCreateParameterList

FltGetEcpListFromCallbackData

FltInitExtraCreateParameterLo在sideList

FltInsertExtraCreateParameter

FltRemoveExtraCreateParameter

FltSetEcpListIntoCallbackData

IoCreateFileEx

PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK