Подпрограмма RemoveHeadList удаляет запись из начала удвоительно связанного списка LIST_ENTRY структур.
Синтаксис
PLIST_ENTRY RemoveHeadList(
[in, out] PLIST_ENTRY ListHead
);
Параметры
[in, out] ListHead
Указатель на структуру LIST_ENTRY , которая служит заголовком списка.
Возвращаемое значение
RemoveHeadList возвращает указатель на запись, удаленную из списка. Если список пуст, Функция RemoveHeadList возвращает listHead.
RemoveHeadList удаляет первую запись из списка, задав параметр ListHead-Flink> так, чтобы он указывал на вторую запись в списке. Подпрограмма устанавливает элемент Blink второй записи в значение ListHead. В случае, если список пуст, это фактически не является операцией.
Сведения об использовании этой процедуры при реализации списка с удвояющими ссылками см. в статье Singly и Doubly Linked Списки.
Вызывающие функции 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), MarkIrpPending(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), RemoveLockReleaseCreate(wdm), RemoveLockReleaseDeviceControl(wdm), RemoveLockReleaseInternalDeviceControl(wdm), RemoveLockReleasePnp(wdm), RemoveLockReleasePower(wdm), RemoveLockReleaseRead(wdm), RemoveLockReleaseShutdown(wdm), RemoveLockReleaseSystemControl(wdm), RemoveLockReleaseWrite(wdm) |
См. также раздел
ExInterlockedRemoveHeadList
InitializeListHead
IsListEmpty
RemoveEntryList
RemoveTailList