共用方式為


FsRtlAllocateExtraCreateParameterFromLookasideList 函式 (ntifs.h)

FsRtlAllocateExtraCreateParameterFromLookasideList 例程會從指定的 lookaside 清單配置記憶體集區,以用於額外的建立參數 (ECP) 內容結構,並產生該結構的指標。

語法

NTSTATUS FsRtlAllocateExtraCreateParameterFromLookasideList(
  [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] EcpType

GUID 的指標,指出應該配置內容結構的 ECP 類型。 如需 ECP 的詳細資訊,請參閱 搭配使用額外建立參數搭配IRP_MJ_CREATE作業

[in] SizeOfContext

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

[in] Flags

定義集區配置選項。 如果 SizeOfContext 參數的值大於 LookasideList 參數指向的 lookaside 列表,FsRtlAllocateExtraCreateParameterFromLookasideList 從系統集區配置 ECP 內容結構,而不是 lookaside 列表。 在此情況下,如果 Flags 參數包含FSRTL_ALLOCATE_ECP_FLAG_CHARGE_QUOTA位旗標值,則由 FsRtlAllocateExtraCreateParameterFromLookasideList 配置的系統集區會針對目前進程的記憶體配額收費。 如需位旗標值的詳細資訊,請參閱 FsRtlAllocateExtraCreateParameterFlags 參數。 在較典型的案例中,當 FsRtlAllocateExtraCreateParameterFromLookasideList 從 lookaside 列表中配置 ECP 內容結構的記憶體時,FsRtlAllocateExtraCreateParameterFromLookasideList 會忽略FSRTL_ALLOCATE_ECP_FLAG_CHARGE_QUOTA位旗標。

[in, optional] CleanupCallback

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

[in, out] LookasideList

初始化的 lookaside 列表指標,FsRtlAllocateExtraCreateParameterFromLookasideList 嘗試配置集區(適用於 ECP 內容結構)。 若要初始化 lookaside 清單,請使用 FsRtlInitExtraCreateParameterLookasideList 例程。

[out] EcpContext

接收所配置 ECP 內容結構指標的位置指標。 如果 FsRtlAllocateExtraCreateParameterFromLookasideList 無法配置足夠的集區給 ECP 內容結構,FsRtlAllocateExtraCreateParameterFromLookasideList 設定 EcpContext,以 NULL 並傳回狀態代碼STATUS_INSUFFICIENT_RESOURCES。

傳回值

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

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

言論

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

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

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

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

要求

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

另請參閱

FsRtlDeleteExtraCreateParameterLookasideList

FsRtlFreeExtraCreateParameter

FsRtlInitExtraCreateParameterLookasideList

PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK