ExInterlockedPopEntryList 함수(wdm.h)

ExInterlockedPopEntryList 루틴은 자동으로 연결된 SINGLE_LIST_ENTRY 구조 목록의 시작 부분에서 항목을 제거합니다.

통사론

C++
PSINGLE_LIST_ENTRY ExInterlockedPopEntryList(
  [in, out] PSINGLE_LIST_ENTRY ListHead,
  [in, out] PKSPIN_LOCK        Lock
);

매개 변수

[in, out] ListHead

목록 헤더 역할을 하는 SINGLE_LIST_ENTRY 구조체에 대한 포인터입니다. ListHead 스토리지는 모든 IRQL에 상주해야 합니다.

[in, out] Lock

목록에 대한 액세스를 동기화하는 데 사용되는 스핀 잠금 역할을 하는 KSPIN_LOCK 구조체에 대한 포인터입니다. 스핀 잠금에 대한 스토리지는 상주해야 하며 KeInitializeSpinLock호출하여 초기화되어야 합니다. Xxx목록 루틴에 ExInterlocked경우에만 이 스핀 잠금을 사용해야 합니다.

반환 값

ExInterlockedPopEntryList 목록에서 제거된 SINGLE_LIST_ENTRY 구조체에 대한 포인터를 반환합니다. 목록이 비어 있으면 루틴은 NULL 반환합니다.

발언

ExInterlockedPopEntryListPopEntryList동일한 작업을 수행하지만 원자성으로 수행합니다. 동일한 목록에서 원자성 및 비원자 호출을 혼합하지 마세요.

이 루틴을 사용하여 적절하게 연결된 목록을 구현하는 방법에 대한 자세한 내용은 Singly 및 두 배로 연결된 목록참조하세요.

ExInterlockedPopEntryList 루틴은 모든 IRQL에서 호출할 수 있습니다. ListHead 매개 변수의 스토리지는 모든 IRQL에 상주해야 합니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows 2000부터 사용할 수 있습니다.
대상 플랫폼 보편적
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 모든 수준(설명 섹션 참조)

참고 항목

exInitializeSListHead

exInterlockedPopEntrySList

ExInterlockedPushEntryList

KeInitializeSpinLock

popEntryList