다음을 통해 공유


ExAllocateFromNPagedLookasideList 함수(wdm.h)

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

구문

PVOID ExAllocateFromNPagedLookasideList(
  [in, out] PNPAGED_LOOKASIDE_LIST Lookaside
);

매개 변수

[in, out] Lookaside

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

반환 값

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

설명

주의

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

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

그런 다음 호출자는 호출자가 결정한 데이터를 사용하여 반환된 항목을 설정할 수 있습니다. 예를 들어 드라이버는 이러한 각 고정 크기 항목을 사용하여 SCSI SRB와 같은 명령 블록을 특정 유형의 I/O 버스의 주변 디바이스에 설정할 수 있습니다. 호출자는 더 이상 사용되지 않는 경우 ExFreeToNPagedLookasideList 를 사용하여 각 항목을 해제해야 합니다.

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

요구 사항

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

추가 정보

ExAllocateFromPagedLookasideList

ExFreeToNPagedLookasideList

ExInitializeNPagedLookasideList

NPAGED_LOOKASIDE_LIST