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 는 다음 값 중 하나를 반환할 수 있습니다.
| 반환 코드 | 설명 |
|---|---|
|
FsRtlAllocateExtraCreateParameterList 에서 ECP 목록 구조에 충분한 메모리를 할당할 수 없습니다. 이 경우 *EcpList 는 NULL입니다. |
|
ECP_LIST 구조체의 메모리가 성공적으로 할당되고 초기화되었습니다. 이 경우 초기화된 목록 구조에 대한 포인터가 EcpList 매개 변수에 반환됩니다. |
설명
운영 체제에서 FsRtlAllocateExtraCreateParameterList 가 할당하는 메모리를 자동으로 해제할지 여부는 다음과 같은 상황에서와 같이 FsRtlAllocateExtraCreateParameterList 가 호출되는 시기에 따라 달라집니다.
- 호출자는 FsRtlAllocateExtraCreateParameterList 를 호출하여 ECP_LIST 할당하고 호출자가 IoCreateFileEx 루틴을 호출하기 전에 하나 이상의 ECP 컨텍스트 구조를 추가할 수 있습니다. 이 경우 운영 체제는 ECP 컨텍스트 구조를 해제하지 않습니다. 따라서 호출자는 동일한 ECP 집합을 사용하여 IoCreateFileEx 를 여러 차례 호출할 수 있습니다. 호출자가 ECP_LIST 완료되면 호출자는 FsRtlFreeExtraCreateParameterList 루틴을 호출하여 ECP_LIST 해제해야 합니다.
- 파일 시스템 또는 파일 시스템 필터 드라이버가 IRP_MJ_CREATE 요청을 처리하는 동안 파일 시스템 또는 파일 시스템 필터 드라이버는 FsRtlInsertExtraCreateParameter 를 호출하여 ECP를 기존 ECP_LIST 연결할 수 있습니다. ECP_LIST 없는 경우 호출자는 FsRtlAllocateExtraCreateParameterList 를 호출하여 ECP_LIST 만들어야 합니다. 이 경우 만들기 작업이 완료되면 I/O 관리자가 ECP_LIST 및 ECP 컨텍스트 구조를 자동으로 정리합니다. 이렇게 하면 파일 시스템 또는 필터 드라이버의 ECP가 재분석 지점 처리에 걸쳐 제대로 전파될 수 있습니다. 이 프로세스를 수행하려면 여러 IRP_MJ_CREATE 요청이 생성되어야 할 수 있습니다.
요구 사항
| 지원되는 최소 클라이언트 | FsRtlAllocateExtraCreateParameterList 루틴은 Windows Vista부터 사용할 수 있습니다. |
| 대상 플랫폼 | 유니버설 |
| 헤더 | ntifs.h(Ntifs.h 포함) |
| 라이브러리 | NtosKrnl.lib |
| DLL | NtosKrnl.exe |
| IRQL | <= APC_LEVEL |
참고 항목
FltAllocateExtraCreateParameter
FltAllocateExtraCreateParameterFromLookasideList
피드백
다음에 대한 사용자 의견 제출 및 보기