ExAllocateFromLookasideListEx 함수(wdm.h)

ExAllocateFromLookasideListEx 루틴은 지정된 lookaside 목록에서 첫 번째 항목을 제거하거나 목록이 비어 있는 경우 새 항목에 대한 스토리지를 동적으로 할당합니다.

구문

PVOID ExAllocateFromLookasideListEx(
  [in, out] PLOOKASIDE_LIST_EX Lookaside
);

매개 변수

[in, out] Lookaside

lookaside 목록을 설명하는 LOOKASIDE_LIST_EX 구조체에 대한 포인터입니다. 이 구조체는 이전에 ExInitializeLookasideListEx 루틴에 의해 초기화되었습니다.

반환 값

ExAllocateFromLookasideListEx 는 목록에서 항목을 사용할 수 있거나 동적으로 할당할 수 있는 경우 lookaside-list 항목에 대한 포인터를 반환합니다. 그렇지 않으면 이 루틴은 NULL을 반환합니다.

설명

주의

Windows 11 버전 22H2부터 이 함수는 인라인에서 내보낸 함수로 변경되었습니다. 따라서 최신 버전의 Windows를 대상으로 하는 드라이버를 빌드하면 이전 OS 버전에서 로드되지 않습니다. Visual Studio에서 대상 OS 버전을 변경하려면 구성 속성-드라이버 설정->일반을> 선택합니다.

이 루틴은 항목을 사용할 수 있는 경우 지정된 lookaside 목록에서 첫 번째 항목을 제거하고 이 항목에 대한 포인터를 반환합니다. 목록이 비어 있으면 루틴은 새 항목에 대한 스토리지를 할당하고 이 항목에 대한 포인터를 반환합니다. 이 할당이 실패하면 루틴은 NULL을 반환합니다.

lookaside 목록이 비어 있으면 ExAllocateFromLookasideListExLookasideListAllocateEx 루틴을 호출하여 드라이버가 이러한 루틴을 제공한 경우 새 항목에 대한 스토리지를 할당합니다. 그렇지 않으면 기본 할당 루틴을 사용하여 항목을 할당합니다.

호출자가 항목을 사용하여 완료되면 ExFreeToLookasideListEx 루틴을 호출하여 항목을 해제해야 합니다.

현재 구현에서 lookaside 목록은 LIFO(Last-in, first-out) 스택으로 작동합니다. 따라서 해제할 마지막 항목(스택으로 푸시)은 목록에서 할당(팝)할 다음 항목입니다.

lookaside 목록에 대한 자세한 내용은 Lookaside Lists 사용을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista 및 이후 버전의 Windows에서 사용할 수 있습니다.
대상 플랫폼 데스크톱
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

추가 정보

ExFreeToLookasideListEx

ExInitializeLookasideListEx

LOOKASIDE_LIST_EX

LookasideListAllocateEx