共用方式為


FltAllocateExtraCreateParameterFromLookasideList 函式 (fltkernel.h)

FltAllocateExtraCreateParameterFromLookasideList 例程會從指定的 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 清單,請使用 FltInitExtraCreateParameterLookasideList 例程。

[out] EcpContext

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

傳回值

FltAllocateExtraCreateParameterFromLookasideList 例程可以傳回下列其中一個值:

傳回碼 描述
STATUS_INSUFFICIENT_RESOURCES FltAllocateExtraCreateParameterFromLookasideList 例程無法配置足夠的記憶體給 ECP 內容結構。 在這裡情況下,EcpContext 將會 NULL
STATUS_SUCCESS 已成功配置 ECP 內容結構。 在此情況下,EcpContext 參數會傳回所配置結構的指標。

言論

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

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

使用 FltInitExtraCreateParameterLookasideList 例程來初始化分頁或非分頁集區 lookaside 清單。 使用 FltAllocateExtraCreateParameterFromLookasideList 例程,從 lookaside 列表中配置 ECP 內容結構,以及 FltFreeExtraCreateParameter 例程來解除分配 ECP 內容結構。

使用 FltDeleteExtraCreateParameterLookasideList 例程來釋放 lookaside 列表。

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

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

要求

要求 價值
目標平臺 普遍
標頭 fltkernel.h (包括 Fltkernel.h)
連結庫 FltMgr.lib
IRQL <= APC_LEVEL

另請參閱

ECP_LIST

FltAllocateExtraCreateParameter

FltAllocateExtraCreateParameterList

FltCreateFileEx2

FltDeleteExtraCreateParameterLookasideList

FltFreeExtraCreateParameter

FltFreeExtraCreateParameterList

FltGetEcpListFromCallbackData

FltInitExtraCreateParameterLookasideList

FltInsertExtraCreateParameter

FltRemoveExtraCreateParameter

FltSetEcpListIntoCallbackData

IoCreateFileEx

PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK