RemoveHeadList 함수(wdm.h)
RemoveHeadList 루틴은 두 배로 연결된 LIST_ENTRY 구조 목록의 시작 부분에서 항목을 제거합니다.
구문
PLIST_ENTRY RemoveHeadList(
[in, out] PLIST_ENTRY ListHead
);
매개 변수
[in, out] ListHead
목록 헤더 역할을 하는 LIST_ENTRY 구조체에 대한 포인터입니다.
반환 값
RemoveHeadList 는 목록에서 제거된 항목에 대한 포인터를 반환합니다. 목록이 비어 있으면 RemoveHeadList 는 ListHead를 반환합니다.
RemoveHeadList는 목록의 두 번째 항목을 가리키도록 ListHead-Flink>를 설정하여 목록에서 첫 번째 항목을 제거합니다. 루틴은 두 번째 항목의 Blink 멤버를 ListHead로 설정합니다. 목록이 비어 있는 경우 사실상 no-op입니다.
이중으로 연결된 목록을 구현할 때 이 루틴을 사용하는 방법에 대한 자세한 내용은 Singly 및 두 배로 연결된 Lists.
RemoveHeadList의 호출자는 모든 IRQL에서 실행할 수 있습니다. RemoveHeadList가 IRQL >= DISPATCH_LEVEL 호출되면 ListHead 및 목록 항목에 대한 스토리지가 상주해야 합니다.
요구 사항
요구 사항 |
값 |
지원되는 최소 클라이언트 |
Windows 2000부터 사용할 수 있습니다. |
대상 플랫폼 |
데스크톱 |
머리글 |
wdm.h(Wdm.h, Ntddk.h, Ntifs.h, Wudfwdm.h 포함) |
IRQL |
모든 수준(설명 섹션 참조) |
DDI 규정 준수 규칙 |
CancelSpinLock(wdm), CompleteRequest(wdm), DoubleCompletion(wdm), DoubleExFreePool(storport), Init_NdisAllocateIoWorkItem(ndis), InvalidReqAccessLocal(kmdf), IoAllocateFree(wdm), IoReuseIrp(wdm), IrpProcessingComplete(wdm), MarkInterlockedQueuedIrps(wdm), MarkQueuedIrps(wdm), MarkIrpPending2(wdm), MarkIrpPending2(wdm)) PendedCompletedRequest(wdm), PendedCompletedRequest2(wdm), PendedCompletedRequest3(wdm), PendedCompletedRequestEx(wdm), RemoveLock(wdm), RemoveLockCheck(wdm), RemoveLockForward(wdm), RemoveLockForward2(wdm), RemoveLockForwardDeviceControl(wdm), RemoveLockForwardDeviceControl2(wdm), RemoveLockForwardDeviceControlInternal(wdm), RemoveLockForwardDeviceControlInternal2(wdm), RemoveLockForwardRead(wdm), RemoveLockForwardRead2(wdm), RemoveLockForwardWrite(wdm), RemoveLockForwardWrite2(wdm), RemoveLockMnRemove(wdm), RemoveLockMnSurpriseRemove(wdm), RemoveLockRelease2(wdm), RemoveLockReleaseCleanup(wdm), RemoveLockReleaseClose(wdm), RemoveLockReleaseDeviceControl(wdm), RemoveLockReleaseInternalDeviceControl(wdm), RemoveLockReleasePnp(wdm), RemoveLockReleasePower(wdm), RemoveLockReleaseRead(wdm), RemoveLockReleaseShutdown(wdm), RemoveLockReleaseSystemControl(wdm), RemoveLockReleaseWrite(wdm) |
추가 정보
ExInterlockedRemoveHeadList
InitializeListHead
IsListEmpty
RemoveEntryList
RemoveTailList