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(마지막 선입선출) 스택으로 작동합니다. 따라서 해제할 마지막 항목(스택으로 푸시)은 목록에서 할당(팝)할 다음 항목입니다.
lookaside 목록에 대한 자세한 내용은 lookaside 목록 사용 참조하세요.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista 이상 버전의 Windows에서 사용할 수 있습니다. |
대상 플랫폼 | 바탕 화면 |
헤더 | wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |