FsRtlAllocateExtraCreateParameter 함수(ntifs.h)
FsRtlAllocateExtraCreateParameter 루틴은 ECP(추가 만들기 매개 변수) 컨텍스트 구조에 대한 메모리를 할당하고 해당 구조에 대한 포인터를 생성합니다.
통사론
NTSTATUS FsRtlAllocateExtraCreateParameter(
[in] LPCGUID EcpType,
[in] ULONG SizeOfContext,
[in] FSRTL_ALLOCATE_ECP_FLAGS Flags,
[in, optional] PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK CleanupCallback,
[in] ULONG PoolTag,
[out] PVOID *EcpContext
);
매개 변수
[in] EcpType
ECP 컨텍스트 구조의 형식을 나타내는 GUID에 대한 포인터입니다. 자세한 내용은 드라이버 GUID 사용
[in] SizeOfContext
컨텍스트 구조의 크기(바이트)입니다.
[in] Flags
풀 할당 옵션을 정의합니다. 다음은 나열된 플래그 값 중 하나 이상이 비트 OR 연산을 사용하여 Flags 매개 변수와 결합될 때 풀을 할당하는 방법을 설명합니다.
FSRTL_ALLOCATE_ECP_FLAG_NONPAGED_POOL - 페이징되지 않은 풀이 할당됩니다. 이 플래그 값을 사용하지 않으면 페이징된 풀이 할당됩니다.
FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA - FsRtlAllocateExtraCreateParameter 의해 할당된 모든 풀은 현재 프로세스의 메모리 할당량에 대해 요금이 청구됩니다.
둘 이상의 플래그를 사용하는 경우 사용된 플래그 값과 관련된 모든 효과가 발생합니다.
[in, optional] CleanupCallback
PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK형식의 필터 정의 정리 콜백 루틴에 대한 선택적 포인터입니다. 정리 콜백 루틴은 ECP 구조(FsRtlAllocateExtraCreateParameter 루틴에 의해 생성됨)가 삭제될 때 호출됩니다. 정리 콜백 루틴을 적용할 수 없는 경우 이 매개 변수를 NULL 설정합니다.
[in] PoolTag
할당된 메모리의 풀 태그를 지정합니다. 자세한 내용은 ExAllocatePoolWithTagTag 매개 변수를 참조하세요.
[out] EcpContext
할당된 ECP 컨텍스트 구조에 대한 포인터를 받습니다. 루틴이 충분한 풀을 할당하지 못한 경우
반환 값
FltAllocateExtraCreateParameter 다음 중 하나와 같은 상태 코드를 반환합니다.
반환 코드 | 묘사 |
---|---|
STATUS_INSUFFICIENT_RESOURCES |
FsRtlAllocateExtraCreateParameter ECP 구조체에 충분한 메모리를 할당할 수 없습니다. 이 경우 |
STATUS_SUCCESS | ECP 구조가 성공적으로 할당되었습니다. 이 경우 할당된 구조체에 대한 포인터가 EcpContext 매개 변수에 반환됩니다. |
발언
기본적으로 FsRtlAllocateExtraCreateParameter 루틴은 ECP 컨텍스트 구조에 대해 페이징된 메모리 풀을 할당합니다. Flags 매개 변수에 설명된 대로 FSRTL_ALLOCATE_ECP_FLAG_NONPAGED_POOL 비트 마스크를 사용하는 경우 페이징되지 않은 메모리 풀이 할당됩니다. 이 풀이 할당되고 ECP 컨텍스트 구조가 초기화된 후 FltInsertExtraCreateParameter 루틴을 사용하여 ECP 목록 구조(ECP_LIST)에 ECP 컨텍스트 구조(ECP 목록 요소)를 삽입합니다.
호출자가 ECP_LIST 할당하고 하나 이상의 ECP가 IoCreateFileEx
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | FsRtlAllocateExtraCreateParameter 루틴은 Windows Vista부터 사용할 수 있습니다. |
대상 플랫폼 | 보편적 |
헤더 | ntifs.h(Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL |
<= APC_LEVEL |
참고 항목
FltAllocateExtraCreateParameterFromLookasideList
FltAllocateExtraCreateParameterList