다음을 통해 공유


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 호출되는 시기에 따라 달라집니다.

  • 호출자는 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

참고 항목

ECP_LIST

FltAllocateExtraCreateParameter

FltAllocateExtraCreateParameterFromLookasideList

FltCreateFileEx2

FltFreeExtraCreateParameter

FltFreeExtraCreateParameterList

FltGetEcpListFromCallbackData

FltInsertExtraCreateParameter

FltRemoveExtraCreateParameter

FltSetEcpListIntoCallbackData

IoCreateFileEx