ExAllocatePool3 함수(wdm.h)
ExAllocatePool3 루틴은 지정된 형식의 풀 메모리를 할당하고 할당된 블록에 대한 포인터를 반환합니다. 이 루틴은 ExAllocatePool2 와 비슷하지만 확장 매개 변수를 추가합니다.
구문
DECLSPEC_RESTRICT PVOID ExAllocatePool3(
POOL_FLAGS Flags,
SIZE_T NumberOfBytes,
ULONG Tag,
PCPOOL_EXTENDED_PARAMETER ExtendedParameters,
ULONG ExtendedParametersCount
);
매개 변수
Flags
필요한 특성 및 선택적 특성과 함께 풀 메모리 유형을 지정하는 ULONG64 형식의 값입니다. 비트 단위 OR를 사용하여 여러 플래그 값을 결합할 수 있습니다. 가능한 값은 POOL_FLAGS 참조하세요.
NumberOfBytes
할당할 바이트 수를 0이 아닌 수로 지정합니다.
Tag
할당된 메모리에 사용할 풀 태그입니다. 풀 태그를 작은따옴표로 구분된 1~4자의 0이 아닌 문자 리터럴로 지정합니다(예 Tag1
: ). 문자열은 일반적으로 역순으로 지정됩니다(예: 1gaT
). 태그의 각 ASCII 문자는 0x7E(타일)에 0x20(공간) 범위의 값이어야 합니다. 각 할당 코드 경로는 디버거와 검증 도구가 코드 경로를 식별하는 데 도움이 되도록 고유한 풀 태그를 사용해야 합니다.
ExtendedParameters
할당에 대한 추가 특성을 지정하는 POOL_EXTENDED_PARAMETER 구조체 배열에 대한 포인터입니다.
ExtendedParametersCount
ExtendedParameters의 매개 변수 수를 지정하는 ULONG 값입니다.
반환 값
ExAllocatePool3 은 할당된 메모리에 대한 포인터를 반환합니다.
다음 조건으로 인해 함수는 기본적으로 NULL을 반환합니다. POOL_FLAG_RAISE_ON_FAILURE 지정하면 함수에서 예외가 발생합니다.
- 메모리 부족
- 태그 가 0으로 설정되었거나 잘못된 POOL_FLAGS 지정됨
- 잘못된 POOL_EXTENDED_PARAMETER 구조체
설명
Windows 10 버전 2004 이전의 Windows 버전을 대상으로 하는 드라이버를 빌드하는 경우 ExAllocatePoolPriorityZero 또는 ExAllocatePoolPriorityUninitialized를 사용합니다.
자세한 내용은 ExAllocatePool2 의 설명을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10, 버전 2004 |
대상 플랫폼 | 유니버설 |
헤더 | wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL(주의 섹션 참조) |
DDI 규정 준수 규칙 | HwStorPortProhibitedDDIs, SpNoWait, StorPortStartIo |