Поделиться через


Функция 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. В случае, если список пуст, это фактически не является операцией.

Сведения об использовании этой процедуры при реализации списка с удвояющими ссылками см. в статье 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