FsRtlAllocateExtraCreateParameterList 함수(ntifs.h)
FsRtlAllocateExtraCreateParameterList 루틴은 ECP_LIST 구조에 대해 페이징된 풀 메모리를 할당하고 해당 구조에 대한 포인터를 생성합니다.
통사론
NTSTATUS FsRtlAllocateExtraCreateParameterList(
[in] FSRTL_ALLOCATE_ECPLIST_FLAGS Flags,
[out] PECP_LIST *EcpList
);
매개 변수
[in] Flags
풀 할당 옵션을 정의합니다. 비트 OR 연산을 사용하여 FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA 플래그를 Flags 매개 변수와 결합하는 경우 FsRtlAllocateExtraCreateParameterList 의해 할당된 풀은 현재 프로세스의 메모리 할당량에 대해 요금이 청구됩니다.
[out] EcpList
초기화된 ECP 목록 구조에 대한 포인터를 받습니다. FsRtlAllocateExtraCreateParameterList 충분한 풀을 할당하지 못한 경우 *EcpList NULL이 되고 FsRtlAllocateExtraCreateParameterList 상태 코드 STATUS_INSUFFICIENT_RESOURCES 반환합니다.
반환 값
FsRtlAllocateExtraCreateParameterList 다음 값 중 하나를 반환할 수 있습니다.
반환 코드 | 묘사 |
---|---|
STATUS_INSUFFICIENT_RESOURCES | FsRtlAllocateExtraCreateParameterList ECP 목록 구조에 충분한 메모리를 할당할 수 없습니다. 이 경우 *EcpList NULL이 됩니다. |
STATUS_SUCCESS | ECP_LIST 구조체의 메모리가 성공적으로 할당되고 초기화되었습니다. 이 경우 초기화된 목록 구조에 대한 포인터가 EcpList 매개 변수에 반환됩니다. |
발언
운영 체제에서 FsRtlAllocateExtraCreateParameterList 할당하는
호출자는 FsRtlAllocateExtraCreateParameterList 호출하여 ECP_LIST 할당하고 호출자가 IoCreateFileEx 루틴을 호출하기 전에 하나 이상의 ECP 컨텍스트 구조를 추가할 수 있습니다. 이 경우 운영 체제는 ECP 컨텍스트 구조를 해제하지 않습니다. 따라서 호출자는 동일한 ECP 집합을 사용하여 IoCreateFileEx
여러 차례 호출할 수 있습니다. 호출자가 ECP_LIST 완료되면 호출자는 FltFreeExtraCreateParameter 루틴을 호출하여 ECP_LIST 해제해야 합니다. 파일 시스템 또는 파일 시스템 필터 드라이버가 IRP_MJ_CREATE 요청을 처리하는 동안 파일 시스템 또는 파일 시스템 필터 드라이버는 FltInsertExtraCreateParameter 호출하여 ECP를 기존 ECP_LIST 연결할 수 있습니다. ECP_LIST 없는 경우 호출자는 FsRtlAllocateExtraCreateParameterList 호출하여 ECP_LIST 만들어야 합니다. 이 경우 만들기 작업이 완료되면 I/O 관리자가 ECP_LIST 및 ECP 컨텍스트 구조를 자동으로 정리합니다. 이렇게 하면 파일 시스템 또는 필터 드라이버의 ECP가 재분석 지점의 처리 전반에 걸쳐 제대로 전파될 수 있습니다. 이 프로세스를 수행하려면 여러 IRP_MJ_CREATE 요청이 생성되어야 할 수 있습니다.
FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA 플래그를 Flags 매개 변수와 함께 사용하면 페이징 가능한 풀이 할당됩니다. 그렇지 않으면 내부 lookaside 목록을 사용하여 페이징 가능한 풀이 할당됩니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista |
대상 플랫폼 | 보편적 |
헤더 | ntifs.h(Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL |
<= APC_LEVEL |
참고 항목
FltAllocateExtraCreateParameter
FltAllocateExtraCreateParameterFromLookasideList
FltFreeExtraCreateParameterList
IoCreateFileEx