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