ExInterlockedInsertTailList 함수(wdm.h)
ExInterlockedInsertTailList 루틴은 두 배로 연결된 LIST_ENTRY 구조 목록의 끝에 항목을 원자적으로 삽입합니다.
구문
PLIST_ENTRY ExInterlockedInsertTailList(
[in, out] PLIST_ENTRY ListHead,
[in, out] __drv_aliasesMem PLIST_ENTRY ListEntry,
[in, out] PKSPIN_LOCK Lock
);
매개 변수
[in, out] ListHead
목록 헤더 역할을 하는 LIST_ENTRY 구조체에 대한 포인터입니다.
[in, out] ListEntry
목록에 삽입할 항목을 나타내는 LIST_ENTRY 구조체에 대한 포인터입니다.
[in, out] Lock
목록에 대한 액세스를 동기화하는 데 사용되는 스핀 잠금 역할을 하는 KSPIN_LOCK 구조체에 대한 포인터입니다. 스핀 잠금에 대한 스토리지는 상주해야 하며 KeInitializeSpinLock을 호출하여 초기화되어야 합니다. ExInterlockedXxx목록 루틴에서만 이 스핀 잠금을 사용해야 합니다.
반환 값
ExInterlockedInsertTailList 는 새 항목을 삽입 하기 전에 목록의 마지막 항목에 대한 포인터를 반환합니다. 목록이 비어 있으면 루틴은 NULL을 반환합니다.
설명
ExInterlockedInsertTailList 는 InsertTailList와 동일한 작업을 수행하지만 원자성으로 수행합니다. 동일한 목록에서 원자성 및 비원자 호출을 혼합하지 마세요.
이 루틴을 사용하여 이중으로 연결된 목록을 구현하는 방법에 대한 자세한 내용은 Singly 및 이중 연결 Lists 참조하세요.
ExInterlockedInsertTailList 루틴은 모든 IRQL에서 호출할 수 있습니다. ListHead 매개 변수 및 목록 항목에 대한 스토리지는 모든 IRQL에 상주해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000부터 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 모든 수준(설명 섹션 참조) |
DDI 규정 준수 규칙 | IoAllocateFree(wdm), IoReuseIrp(wdm), MarkingInterlockedQueuedIrps(wdm), RemoveLockCheck(wdm), RemoveLockForward(wdm), RemoveLockForward2(wdm), RemoveLockForwardDeviceControl(wdm), RemoveLockForwardDeviceControl2(wdm), RemoveLockForwardDeviceControlInternal(wdm), RemoveLockForwardDeviceControlInternal2(wdm), RemoveLockForwardRead(wdm), RemoveLockForwardRead2(wdm), RemoveLockForwardWrite(wdm), RemoveLockForwardWrite2(wdm), RemoveLockRelease2(wdm), RemoveLockReleaseCleanup(wdm), RemoveLockReleaseClose(wdm), RemoveLockReleaseCreate(wdm), RemoveLockReleaseDeviceControl(wdm), RemoveLockReleaseInternalDeviceControl(wdm), RemoveLockReleasePower(wdm), RemoveLockReleaseRead(wdm), RemoveLockReleaseShutdown(wdm), RemoveLockReleaseSystemControl(wdm), RemoveLockReleaseWrite(wdm) |
추가 정보
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기