FsRtlAllocateExtraCreateParameterFromLookasideList 함수(ntifs.h)
FsRtlAllocateExtraCreateParameterFromLookasideList 루틴은 ECP(추가 만들기 매개 변수) 컨텍스트 구조에 대해 지정된 lookaside 목록의 메모리 풀을 할당하고 해당 구조에 대한 포인터를 생성합니다.
통사론
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
할당해야 하는 컨텍스트 구조에 대한 ECP의 형식을 나타내는 GUID에 대한 포인터입니다. ECP에 대한 자세한 내용은 IRP_MJ_CREATE 작업추가 만들기 매개 변수 사용
[in] SizeOfContext
ECP 컨텍스트 구조의 크기(바이트)입니다.
[in] Flags
풀 할당 옵션을 정의합니다. SizeOfContext 매개 변수의 값이 LookasideList 매개 변수가 가리키는 lookaside 목록의 크기(바이트)보다 큰 경우 FsRtlAllocateExtraCreateParameterFromLookasideList lookaside 목록 대신 시스템 풀에서 ECP 컨텍스트 구조를 할당합니다. 이 경우 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
FsRtlAllocateExtraCreateParameterFromLookasideList가 풀을 할당하려고 시도하는 초기화된 lookaside 목록에 대한 포인터입니다(ECP 컨텍스트 구조의 경우). lookaside 목록을 초기화하려면 FsRtlInitExtraCreateParameterLookasideList 루틴을 사용합니다.
[out] EcpContext
할당된 ECP 컨텍스트 구조에 대한 포인터를 받는 위치에 대한 포인터입니다.
반환 값
FsRtlAllocateExtraCreateParameterFromLookasideList 루틴은 다음 값 중 하나를 반환할 수 있습니다.
반환 코드 | 묘사 |
---|---|
STATUS_INSUFFICIENT_RESOURCES |
FsRtlAllocateExtraCreateParameterFromLookasideList 루틴이 ECP 컨텍스트 구조에 충분한 메모리를 할당할 수 없습니다. 이 경우 |
STATUS_SUCCESS | ECP 컨텍스트 구조가 성공적으로 할당되었습니다. 이 경우 FsRtlAllocateExtraCreateParameterFromLookasideListEcpContext 매개 변수에서 할당된 구조체에 대한 포인터를 반환합니다. |
발언
FsRtlInitExtraCreateParameterLookasideList 루틴을 사용하여 페이징된 풀 또는 비페이지 풀 lookaside 목록을 초기화합니다. FsRtlAllocateExtraCreateParameterFromLookasideList 루틴을 사용하여 lookaside 목록에서 ECP 컨텍스트 구조를 할당하고 FsRtlFreeExtraCreateParameter 루틴을 사용하여 ECP 컨텍스트 구조를 할당 취소합니다.
FsRtlDeleteExtraCreateParameterLookasideList 루틴을 사용하여 lookaside 목록을 해제합니다.
드라이버는 언로드하기 전에 만든 모든 ECP 컨텍스트 구조와 lookaside 목록을 해제해야 합니다. 그러나 파일 시스템 또는 파일 시스템 필터 드라이버가 IRP_MJ_CREATE 요청을 처리하는 동안 기존 또는 새로 만든 ECP_LIST ECP를 연결하는 경우 IRP가 완료되면 이 ECP가 자동으로 정리됩니다. 따라서 필터 드라이버는 동적으로 추가되는 ECP를 정리할 필요가 없습니다. 이렇게 하면 여러 IRP_MJ_CREATE 요청을 생성해야 할 수 있는 프로세스인 다시 구문 분석 지점에 필터 드라이버의 ECP가 제대로 전파될 수 있습니다.
드라이버와 함께 lookaside 목록을 사용하는 방법에 대한 자세한 내용은 Lookaside 목록사용을 참조하세요.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | FsRtlAllocateExtraCreateParameterFromLookasideList는 Windows Vista부터 사용할 수 있습니다. |
대상 플랫폼 | 보편적 |
헤더 | ntifs.h(Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL |
<= APC_LEVEL |
참고 항목
FsRtlDeleteExtraCreateParameterLookasideList