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가 충분한 풀을 할당하지 못한 경우 *EcpListNULL이고 FsRtlAllocateExtraCreateParameterList는 STATUS_INSUFFICIENT_RESOURCES 상태 코드를 반환합니다.

반환 값

FsRtlAllocateExtraCreateParameterList 는 다음 값 중 하나를 반환할 수 있습니다.

반환 코드 설명
STATUS_INSUFFICIENT_RESOURCES
FsRtlAllocateExtraCreateParameterList 에서 ECP 목록 구조에 충분한 메모리를 할당할 수 없습니다. 이 경우 *EcpListNULL입니다.
STATUS_SUCCESS
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 요청이 생성되어야 할 수 있습니다.
FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA 플래그가 Flags 매개 변수와 함께 사용되는 경우 페이징 가능한 풀이 할당됩니다. 그렇지 않으면 내부 lookaside 목록을 사용하여 페이징 가능한 풀이 할당됩니다.

요구 사항

   
지원되는 최소 클라이언트 FsRtlAllocateExtraCreateParameterList 루틴은 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