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 配置的系統集區會針對目前進程的記憶體配額收費。 如需位旗標值的詳細資訊,請參閱 FsRtlAllocateExtraCreateParameter的 Flags 參數。 在較典型的案例中,當 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