다음을 통해 공유


ExAllocateFromPagedLookasideList 함수(wdm.h)

ExAllocateFromPagedLookasideList 루틴은 지정된 lookaside 목록에서 페이징된 항목에 대한 포인터를 반환하거나 새로 할당된 페이징된 항목에 대한 포인터를 반환합니다.

구문

PVOID ExAllocateFromPagedLookasideList(
  [in, out] PPAGED_LOOKASIDE_LIST Lookaside
);

매개 변수

[in, out] Lookaside

호출자가 ExInitializePagedLookasideList를 사용하여 이미 초기화한 lookaside 목록의 PAGED_LOOKASIDE_LIST 구조체에 대한 포인터입니다.

반환 값

ExAllocateFromPagedLookasideList 는 할당할 수 있는 경우 항목에 대한 포인터를 반환합니다. 그렇지 않으면 NULL을 반환합니다.

설명

주의

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

지정된 lookaside 목록이 비어 있지 않으면 ExAllocateFromPagedLookasideList 는 목록에서 첫 번째 항목을 제거하고 이 항목에 대한 포인터를 반환합니다. 그렇지 않으면 ExAllocateFromPagedLookasideList 는 목록 초기화에 지정된 할당 루틴을 호출하거나 ExAllocatePoolWithTag 를 호출하여 항목 포인터를 반환합니다.

그런 다음 호출자는 호출자가 결정한 데이터를 사용하여 반환된 항목을 설정할 수 있습니다. 호출자는 더 이상 사용되지 않는 경우 ExFreeToPagedLookasideList 를 사용하여 각 항목을 해제해야 합니다.

페이징된 lookaside 목록의 항목은 페이징 가능한 메모리에서 할당되므로 IRQL >= DISPATCH_LEVEL 액세스해서는 안 됩니다. ExAllocateFromNPagedLookasideList를 사용하여 페이징할 수 없는 항목이 있는 lookaside 목록을 만들 수 있습니다.

Windows 2000에서 드라이버는 -D_WIN2K_COMPAT_SLIST_USAGE 스위치를 사용하여 ExAllocateFromPagedLookasideList를 사용하는 코드를 성공적으로 연결해야 합니다.

자세한 내용은 Lookaside Lists 사용을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000부터 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

추가 정보

ExAllocateFromNPagedLookasideList

ExFreeToPagedLookasideList

ExInitializePagedLookasideList

PAGED_LOOKASIDE_LIST