RemoveEntryList 함수(wdm.h)

RemoveEntryList 루틴은 LIST_ENTRY 구조체의 이중으로 연결된 목록에서 항목을 제거합니다.

구문

BOOLEAN RemoveEntryList(
  [in] PLIST_ENTRY Entry
);

매개 변수

[in] Entry

제거할 항목을 나타내는 LIST_ENTRY 구조체에 대한 포인터입니다.

반환 값

RemoveEntryList 는 지정된 항목을 제거한 후 목록이 비어 있으면 TRUE 를 반환합니다. 그렇지 않으면 루틴은 FALSE 를 반환하여 결과 목록에 하나 이상의 항목이 여전히 포함되어 있음을 나타냅니다. 자세한 내용은 아래 의 설명 섹션을 참조하세요.

설명

RemoveEntryListEntry 앞에 있는 항목의 Flink 멤버를 Entry 뒤의 항목을 가리키도록 설정하고 Entry 다음에 있는 항목의 Blink 멤버를 항목 앞의 항목을 가리키도록 설정하여 항목을 제거합니다.

반환 값을 사용하여 목록에서 마지막 항목이 제거되는 시기를 감지할 수 있습니다. 빈 목록은 목록 머리만 구성되며 목록 항목은 없습니다.

일반적으로 진입점 은 목록 헤드가 아닌 목록의 항목을 가리킵니다. 그러나 Entry 은 목록 헤드를 가리킬 수 있으며, 이 경우 루틴은 목록에서 목록 헤드를 제거하여 헤드리스 목록을 생성합니다. 이러한 방식으로 RemoveEntryList를 사용하는 경우 반환 값은 일반적으로 무시되어야 합니다. 목록이 비어 있는지 확인하려면 IsListEmpty 루틴을 사용합니다.

이중으로 연결된 목록을 구현할 때 이 루틴을 사용하는 방법에 대한 자세한 내용은 Singly 및 두 배로 연결된 Lists.

RemoveEntryList의 호출자는 모든 IRQL에서 실행할 수 있습니다. IRQL >= DISPATCH_LEVEL RemoveEntryList가 호출되면 목록 항목에 대한 스토리지가 상주해야 합니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 wdm.h(Wdm.h, Ntddk.h, Ntifs.h, Wudfwdm.h 포함)
IRQL 모든 수준(설명 섹션 참조)
DDI 규정 준수 규칙 DoubleExFreePool(storport)

추가 정보

InitializeListHead

IsListEmpty

RemoveHeadList

RemoveTailList